home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 26
/
Cream of the Crop 26.iso
/
program
/
inter54a.zip
/
INTERRUP.D
< prev
next >
Wrap
Text File
|
1997-06-29
|
358KB
|
10,636 lines
Interrupt List, part 4 of 16
Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
--------b-166F00-----------------------------
INT 16 - HP Vectra EX-BIOS - "F16_INQUIRE" - Extended BIOS INSTALLATION CHECK
AX = 6F00h
BX <> 4850h (usually set to 0000h for simplicity)
Return: BX = 4850h ("HP") if present
Notes: called by recent MS Mouse drivers looking for an HP-HIL mouse
supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
SeeAlso: AX=6F01h,AX=6F04h,AX=6F07h,AX=6F09h,AX=6F0Dh,AX=6F11h,AX=6F12h
SeeAlso: INT 14/AX=6F00h,INT 17/AX=6F00h,INT 33/AX=6F00h
SeeAlso: INT 6F/AH=00h"HP Vectra"
--------b-166F01-----------------------------
INT 16 - HP Vectra EX-BIOS - "F16_DEF_ATTR" - GET DEFAULT TYPEMATIC VALUES
AX = 6F01h
Return: AH = 00h (successful)
CX = 0004h (size of returned buffer)
ES:SI -> buffer for typematic info (see #0513)
Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h
Format of HP Vectra EX-BIOS typematic info:
Offset Size Description (Table 0513)
00h BYTE delay before repeat for all non-Cursor Control Pad keys
(see #0514)
01h BYTE typematic rate for all non-Cursor Control Pad keys (see #0515)
02h BYTE delay before repeat for Cursor Control Pad keys (see #0516)
03h BYTE typematic rate for Cursor Control Pad keys (see #0515)
(Table 0514)
Values for HP Vectra EX-BIOS non-CCP delay time:
00h 17 ms
01h 150 ms
02h 283 ms
03h 417 ms
04h 550 ms
05h 683 ms
06h 817 ms
07h 950 ms
08h 1083 ms
09h 1217 ms
0Ah 1350 ms
0Bh 1483 ms
0Ch 1617 ms
0Dh 1750 ms
0Eh 1883 ms
0Fh 2017 ms
Note: the above values assume that the key repeat rate has been set to 60 Hz;
double the times if set to 30 Hz
SeeAlso: #0513,#0515,#0516
(Table 0515)
Values for HP Vectra EX-BIOS typematic rate:
00h 60 / sec
01h 30 / sec
02h 20
03h 15
04h 12
05h 10
06h 8.57
07h 7.5
08h 6.66
09h 6 / sec
0Ah 5.45
0Bh 5
0Ch 4.62
0Dh 4.28
0Eh 4 / sec
0Fh typematic disabled
Note: the above values assume that the key repeat rate has been set to 60 Hz;
halve the rates if set to 30 Hz
SeeAlso: #0514,#0516
(Table 0516)
Values for HP Vectra EX-BIOS CCP delay time:
00h 17 ms
01h 83 ms
02h 150 ms
03h 217 ms
04h 283 ms
05h 350 ms
06h 417 ms
07h 483 ms
08h 550 ms
09h 617 ms
0Ah 683 ms
0Bh 750 ms
0Ch 817 ms
0Dh 883 ms
0Eh 950 ms
0Fh 1017 ms
Note: the above values assume that the key repeat rate has been set to 60 Hz;
double the times if set to 30 Hz
SeeAlso: #0514,#0515
--------b-166F02-----------------------------
INT 16 - HP Vectra EX-BIOS - "F16_GET_ATTR" - GET CURRENT TYPEMATIC VALUES
AX = 6F02h
Return: AH = 00h (successful)
CX = 0004h (size of returned buffer)
ES:SI -> buffer for typematic info (see #0513)
Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h
SeeAlso: AX=6F00h,AX=6F01h,AX=6F03h
--------b-166F03-----------------------------
INT 16 - HP Vectra EX-BIOS - "F16_SET_ATTR" - SET TYPEMATIC VALUES
AX = 6F03h
ES:SI -> buffer containing typematic info (see #0513)
Return: AH = 00h (successful)
Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
SeeAlso: AX=6F00h,AX=6F02h,AX=6F03h,AX=6F04h
SeeAlso: AX=6F00h,AX=6F01h,AX=6F02h
--------b-166F04-----------------------------
INT 16 - HP Vectra EX-BIOS - "F16_DEF_MAPPING" - GET DEFAULT KEY MAPPINGS
AX = 6F04h
ES:SI -> mapping buffer (see #0517)
Return: AH = 00h (successful)
CX = 001Eh (number of bytes in buffer)
ES:SI buffer filled
Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
the HIL input system translates the HIL keyboard events to simulate
an IBM-compatible keyboard; the translation can be altered
dynamically by applications
SeeAlso: AX=6F00h,AX=6F05h,AX=6F06h
Format of HP Vectra EX-BIOS keyboard mapping info:
Offset Size Description (Table 0517)
00h 3 WORDs entry for V_QWERTY driver (IP, CS, DS)
06h 3 WORDs entry for V_SOFTKEY driver (IP, CS, DS)
0Ch 3 WORDs entry for V_FUNCTION driver
12h 3 WORDs entry for V_NUMPAD driver
18h 3 WORDs entry for V_CCP driver
--------b-166F05-----------------------------
INT 16 - HP Vectra EX-BIOS - "F16_GET_MAPPING" - GET CURRENT KEY MAPPINGS
AX = 6F05h
ES:SI -> mapping buffer (see #0517)
Return: AH = 00h (successful)
CX = 001Eh (number of bytes in buffer)
ES:SI buffer filled
Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
SeeAlso: AX=6F04h,AX=6F06h
--------b-166F06-----------------------------
INT 16 - HP Vectra EX-BIOS - "F16_SET_MAPPING" - SET KEY MAPPINGS
AX = 6F06h
CX = number of bytes in buffer (001Eh)
ES:SI -> mapping buffer (see #0517)
Return: AH = 00h (successful)
Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
any application which modifies the key mappings should restore them
before terminating
drivers installed with this function are assured of 32 bytes of stack
space when they are invoked
SeeAlso: AX=6F04h,AX=6F05h,AX=6F07h
--------b-166F07-----------------------------
INT 16 - HP Vectra EX-BIOS - "F16_SET_XLATORS" - SET CCP AND SOFTKEY PADS
AX = 6F07h
BL = translation to set (see #0518)
Return: AH = 00h (successful)
Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
this function may no longer work properly if the application has
modified the key mappings with AX=6F06h
SeeAlso: AX=6F06h,AX=6F09h
(Table 0518)
Values for HP Vectra keyboard translation specifier:
00h map V_CCP to V_CCPCUR, forcing the cursor pad to return cursor keys
01h map V_CCP to V_CCPNUM, forcing the cursor pad to always return numbers
02h map V_CCP to V_OFF, disabling the cursor pad
03h map V_CCP to V_CCPGID, converting cursor pad keys to GID data
04h map V_CCP to V_RAW, passing cursor pad data untranslated to INT 09
05h map V_SOFTKEY to V_SKEY2KFEY, translating into standard function keys
06h map V_SOFTKEY to V_RAW, passing Softkey scancodes direct to INT 09
07h map V_SOFTKEY to V_OFF, disabling HP Softkeys
SeeAlso: #0519
(Table 0519)
Values for HP Vectra scancodes and BIOS keycodes for V_RAW translator:
INT 09 INT 16 keycode
Key scan code Default Shifted Ctrl Alt
* (NumPd) 37h 2Ah (Prt Sc) 00/72h 00/37H
Sysreq 54h -- -- -- --
CCP-Up 60h 00/D9h 00/BFh 00/A5h 00/8BH
CCP-Left 61h 00/DAh 00/C0h 00/A6h 00/8CH
CCP-Down 62h 00/DBh 00/C1h 00/A7h 00/8DH
CCP-Right 63h 00/DCh 00/C2h 00/A8h 00/8EH
CCP-Home 64h 00/DDh 00/C3h 00/A9h 00/8FH
CCP-PgUp 65h 00/DEh 00/C4h 00/AAh 00/90H
CCP-End 66h 00/DFh 00/C5h 00/ABh 00/91H
CCP-PgDn 67h 00/E0h 00/C6h 00/ACh 00/92H
CCP-Ins 68h 00/E1h 00/C7h 00/ADh 00/93H
CCP-Del 69h 00/E2h 00/C8h 00/AEh 00/94H
CCP-CNTR 6Ah 00/E3h 00/C9h 00/AFh 00/95H
f1 70h 00/E9h 00/CFh 00/B5h 00/9BH
f2 71h 00/EAh 00/D0h 00/B6h 00/9CH
f3 72h 00/EBh 00/D1h 00/B7h 00/9DH
f4 73h 00/ECh 00/D2h 00/B8h 00/9EH
f5 74h 00/EDh 00/D3h 00/B9h 00/9FH
f6 75h 00/EEh 00/D4h 00/BAh 00/A0H
f7 76h 00/EFh 00/D5h 00/BBh 00/A1H
f8 77h 00/F0h 00/D6h 00/BCh 00/A2H
Note: only HP-specific codes are listed in this table; see INT 09 for a full
list of standard scan codes
SeeAlso: #0005,#0518
--------b-166F08-----------------------------
INT 16 - HP Vectra EX-BIOS - "F16_KBD" - GET KEYBOARD INFORMATION
AX = 6F08h
Return: AH = status
00h successful
02h unsupported (non-HIL, i.e. standard, keyboard)
BH = HP-HIL address (HP Vectra AT only???)
BL = HP-HIL ID (HP Vectra AT only???)
BL = keyboard language (ES/QS/RS only???) (see #0520)
Notes: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
the driver's address in the HP_VECTOR_TABLE (see INT 6F/AH=00h) may
be computed as (BH-1)*6 + N, where N is the address of the first
HP-HIL device driver (see INT 6F/AH=0Ah"F_INQUIRE_FIRST")
SeeAlso: AX=6F05h,AX=6F09h,INT 6F/AH=0Ah"F_INQUIRE_FIRST"
(Table 0520)
Values for HP HIL keyboard language code:
00h reserved
01h Arabic-French
02h Kanji
03h Swiss-French
04h Portugese
05h Arabic
06h Hebrew
07h Canadian-English
08h Turkish
09h Greek
0Ah Thai
0Bh Italian
0Ch Hangul (Korean)
0Dh Dutch
0Eh Swedish
0Fh German
10h Chinese (PRC)
11h Chinese (Taiwan)
12h Swiss (French ii)
13h Spanish
14h Swiss (German ii)
15h Belgian (Flemish)
16h Finish
17h United Kingdom
18h French-Canadian
19h French-German
1Ah Norwegian
1Bh French
1Ch Danish
1Dh Katakana
1Eh Latin American Spanish
1Fh United States-American
20h-FEh reserved
FFh non-HP keyboard (IBM AT keyboard and IBM Enhanced keyboard)
--------b-166F09-----------------------------
INT 16 - HP Vectra EX-BIOS - "F16_KBD_RESET" - RESET KEYBOARD TO DEFAULTS
AX = 6F09h
Return: AH = 00h (successful)
Desc: reset all keyboard mappings to their default translators, and reset
typematic values to their defaults
Note: supported by the original HP Vectra AT and ES/QS/RS series HP Vectras
SeeAlso: AX=6F04h,AX=6F07h,AX=6F08h
--------b-166F0A-----------------------------
INT 16 - HP Vectra ES/QS/RS EX-BIOS - READ PROCESSOR SPEED
AX = 6F0Ah
Return: AH = 00h (successful)
BX = speed code
0Bh for low speed (see #0521)
12h for medium speed (see #0521)
0Ch for high speed (see #0521)
Note: supported by ES, QS, and RS series of HP Vectras
SeeAlso: AX=6F00h
(Table 0521)
Values for HP Vetra CPU speed:
Vectra Low Medium High
ES 8 MHz - 8 MHz
ES/12 8 MHz - 12 MHz
QS/16, RS/16 8 MHz - 16 MHz
QS/16S 8 MHz - 16 MHz
QS/20, RS/20 8 MHz - 20 MHz
RS/20C 5 MHz 10 MHz 20 MHz
RS/25C 5 MHz 12.5 MHz 25 MHz
--------b-166F0B-----------------------------
INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET PROCESSOR SPEED TO LOW
AX = 6F0Bh
Return: AH = 00h (successful)
Notes: see AX=6F0Ah for speed definitions
supported by ES, QS, and RS series of HP Vectras
SeeAlso: AX=6F00h,AX=6F0Ah
--------b-166F0C-----------------------------
INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET PROCESSOR SPEED TO HIGH
AX = 6F0Ch
Return: AH = 00h (successful)
Notes: see AX=6F0Ah for speed definitions
supported by ES, QS, and RS series of HP Vectras
SeeAlso: AX=6F00h,AX=6F0Ah
--------b-166F0D-----------------------------
INT 16 - HP Vectra ES/QS/RS EX-BIOS - GET HIL Extended BIOS INTERRUPT NUMBER
AX = 6F0Dh
Return: AH = interrupt number (default 6Fh, 02h means 6Fh as well)
Notes: supported by ES, QS, and RS series of HP Vectras
called by MS Windows HPSYSTEM.DRV and HPEBIOS.386 to support the HP-HIL
input system
SeeAlso: AX=6F00h,AX=6F0Eh,INT 6F/AH=00h"HP Vectra",INT 6F/AH=0Ah"HP"
--------b-166F0E-----------------------------
INT 16 - HP Vectra ES/QS/RS EX-BIOS - SET HIL Extended BIOS INTERRUPT NUMBER
AX = 6F0Eh
BL = new interrupt number (60h-6Fh,78h-7Fh)
Return: AH = status (00h = successful)
Desc: allows the HIL Extended BIOS software to use a non-default interrupt
number in case of an interrupt conflict with another application
Notes: supported by ES, QS, and RS series of HP Vectras
called by MS Windows HPSYSTEM.DRV and HPEBIOS.386 to support the HP-HIL
input system
SeeAlso: AX=6F00h,AX=6F0Dh,INT 6F/AH=00h"HP",INT 6F/AH=0Ah"HP"
--------b-166F0F-----------------------------
INT 16 - HP Vectras RS/20C and RS/25C - ENABLE MEMORY CACHING
AX = 6F0Fh
Return: AH = status
00h successful
FEh cache subsystem is bad
SeeAlso: AX=6F00h,AX=6F10h,AX=6F11h
--------b-166F10-----------------------------
INT 16 - HP Vectras RS/20C and RS/25C - DISABLE MEMORY CACHING
AX = 6F10h
Return: AH = 00h (successful)
SeeAlso: AX=6F00h,AX=6F0Fh,AX=6F11h
--------b-166F11-----------------------------
INT 16 - HP Vectras RS/20C and RS/25C - GET MEMORY CACHING STATE
AX = 6F11h
Return: AH = 00h (successful)
AL bit 0 = cache state
0 cache disabled
1 cache enabled
SeeAlso: AX=6F00h,AX=6F0Fh,AX=6F10h
--------b-166F12-----------------------------
INT 16 - HP Vectras RS/20C and RS/25C - SET PROCESSOR SPEED TO MEDIUM
AX = 6F12h
Return: AH = 00h (successful)
Note: see AX=6F0Ah for speed definitions
SeeAlso: AX=6F00h,AX=6F0Ah
--------K-1670-------------------------------
INT 16 - FAKEY.COM - INSTALLATION CHECK
AH = 70h
Return: AX = 1954h if installed
Program: FAKEY is a keystroke faking utility by System Enhancement Associates
--------K-1671-------------------------------
INT 16 - FAKEY.COM - PUSH KEYSTROKES
AH = 71h
CX = number of keystrokes
DS:SI -> array of words containing keystrokes to be returned by AH=00h
Program: FAKEY is a keystroke faking utility by System Enhancement Associates
SeeAlso: AH=05h,AH=72h
--------K-1672-------------------------------
INT 16 - FAKEY.COM - CLEAR FAKED KEYSTROKES
AH = 72h
Program: FAKEY is a keystroke faking utility by System Enhancement Associates
SeeAlso: AH=71h
--------K-1673-------------------------------
INT 16 - FAKEY.COM - PLAY TONES
AH = 73h
CX = number of tones to play
DS:SI -> array of tones (see #0522)
Program: FAKEY is a keystroke faking utility by System Enhancement Associates
SeeAlso: INT 15/AX=1019h
Format of FAKEY.COM tone array entries:
Offset Size Description (Table 0522)
00h WORD divisor for timer channel 2
02h WORD duration in clock ticks
--------i-167463-----------------------------
INT 16 U - FastJuice - INSTALLATION CHECK
AX = 7463h ("tc")
Return: AX = 5443h ("TC") if installed
Program: FastJuice is a resident battery-power monitor by SeaSide Software
SeeAlso: AX=6A6Bh
--------R-1675-------------------------------
INT 16 - pcANYWHERE III - SET TICK COUNT FOR SCANNING
AH = 75h
AL = number of ticks between checks for new screen changes
--------R-1676-------------------------------
INT 16 - pcANYWHERE III - SET ERROR CHECKING TYPE
AH = 76h
AL = error checking type
00h none
01h fast
02h slow
--------R-1677-------------------------------
INT 16 - pcANYWHERE III - LOG OFF
AH = 77h
AL = mode
00h wait for another call
01h leave in Memory Resident Mode
02h leave in Automatic Mode
FFh leave in current operating mode
--------U-167761-----------------------------
INT 16 - WATCH.COM v2.x-v3.0 - INSTALLATION CHECK
AX = 7761h ('wa')
Return: AX = 5741h ('WA') if installed
Note: WATCH.COM is part of the "TSR" package by Kim Kokkonen
SeeAlso: INT 21/AX=7761h
--------U-167788BX7789-----------------------
INT 16 - PC Magazine PUSHDIR.COM - INSTALLATION CHECK
AX = 7788h
BX = 7789h
DS:SI -> signature "PUSHDIR VERSION 1.0"
Return: AX = 7789h if installed and signature correct
BX = 7788h
SI destroyed
--------R-1679-------------------------------
INT 16 - pcANYWHERE III - CHECK STATUS
AH = 79h
Return: AX = status
FFFFh if resident and active
FFFEh if resident but not active
FFFDh if in Memory Resident mode
FFFCh if in Automatic mode
other value if not resident
SeeAlso: AX=7B00h,INT 21/AX=2B44h
--------R-167A-------------------------------
INT 16 - pcANYWHERE III - CANCEL SESSION
AH = 7Ah
--------R-167B00-----------------------------
INT 16 - pcANYWHERE III - SUSPEND
AX = 7B00h
SeeAlso: AH=79h,AX=7B01h
--------R-167B01-----------------------------
INT 16 - pcANYWHERE III - RESUME
AX = 7B01h
SeeAlso: AH=79h,AX=7B00h
--------R-167C-------------------------------
INT 16 - pcANYWHERE III - GET PORT CONFIGURATION
AH = 7Ch
Return: AH = port number
AL = baud rate (see #0523)
SeeAlso: AX=7B00h,AH=7Eh
(Table 0523)
Values for pcANYWHERE III baud rate:
00h 50 baud
01h 75 baud
02h 110 baud
03h 134.5 baud
04h 150 baud
05h 300 baud
06h 600 baud
07h 1200 baud
08h 1800 baud
09h 2000 baud
0Ah 2400 baud
0Bh 4800 baud
0Ch 7200 baud
0Dh 9600 baud
0Eh 19200 baud
SeeAlso: #0228
--------R-167D-------------------------------
INT 16 - pcANYWHERE III - GET/SET TERMINAL PARAMETERS
AH = 7Dh
AL = subfunction
00h set terminal parameters
01h get terminal parameters
02h get configuration header and terminal parameters
DS:CX -> terminal parameter block
SeeAlso: AH=7Ch,AH=7Eh
--------R-167E-------------------------------
INT 16 - pcANYWHERE III - COMMUNICATIONS I/O THROUGH PORT
AH = 7Eh
AL = subfunction
01h port input status
Return AX = 0 if no characer ready,
AX = 1 if character ready
02h port input character
Return AL = received character
03h port output character in CX
11h hang up phone
SeeAlso: AH=7Ch
--------R-167F-------------------------------
INT 16 - pcANYWHERE III - SET KEYBOARD/SCREEN MODE
AH = 7Fh
AL = subfunction
00h enable remote keyboard only
01h enable host keyboard only
02h enable both keyboards
08h display top 24 lines
09h display bottom 24 lines
10h Hayes modem
11h other modem
12h direct connect
--------U-1680-------------------------------
INT 16 - MAKEY.COM - INSTALLATION CHECK
AH = 80h
Return: AX = 1954h if installed
Program: MAKEY is a utility by System Enhancement Associates
--------K-1687-------------------------------
INT 16 - DK.COM v1.03 - INSTALLATION CHECK
AH = 87h
Return: AX = 4A57h ('JW') if installed
Program: DK.COM is the resident part of a small keyboard macro utility
by Digital Mechanics.
--------U-168765BX4321-----------------------
INT 16 - AT.COM version 8/26/87 - API
AX = 8765h
BX = 4321h
CX = ??? or FFFFh
if CX = FFFFh
DX = number of event to remove or FFFFh
Return: ES:BX -> event record array (see #0524)
Program: AT.COM is a resident scheduler by Bill Frolik
Format of AT.COM event record:
Offset Size Description (Table 0524)
00h BYTE in-use flag (00h free, 01h in use, FFh end of array)
01h BYTE day of date on which to trigger
02h BYTE month of date on which to trigger
03h BYTE trigger time, minute
04h BYTE trigger time, hour
05h WORD offset of command to be executed
--------K-1692-------------------------------
INT 16 - KEYB.COM KEYBOARD CAPABILITIES CHECK (not an actual function!)
AH = 92h
Return: AH <= 80h if enhanced keyboard functions (AH=10h-12h) supported
Desc: this function is called by the DOS 3.2 KEYBxx.COM and DOS 5+ KEYB.COM
to determine the highest supported keyboard function
Note: many BIOSes (including at least some versions of Phoenix and AMI) will
destroy AH on return from functions higher than AH=12h, returning
12h less than was in AH on entry (due to a chain of DEC/JZ
instructions)
SeeAlso: AH=05h"PCjr",AH=A2h,INT 2F/AX=AD80h
--------U-1699-------------------------------
INT 16 - SCOUT v5.4 - GET ???
AH = 99h
Return: AX = ABCDh
BX:CX -> ??? (appears to be start of PSP for resident portion)
Program: Scout is a memory-resident file manager by New-Ware
SeeAlso: AH=9Eh
--------U-169E-------------------------------
INT 16 - SCOUT v5.4 - INSTALLATION CHECK
AH = 9Eh
Return: AX = ABCDh if installed
Program: Scout is a memory-resident file manager by New-Ware
SeeAlso: AH=99h
--------K-16A2-------------------------------
INT 16 - KEYB.COM KEYBOARD CAPABILITIES CHECK (not an actual function!)
AH = A2h
Return: AH <= 80h if 122-key keyboard functions (AH=20h-22h) supported
Desc: this function is called by the DOS 3.2 KEYBxx.COM and DOS 5+ KEYB.COM
to determine the highest supported keyboard function
Note: many BIOSes (including at least some versions of Phoenix and AMI) will
destroy AH on return from functions higher than AH=12h, returning
12h less than was in AH on entry (due to a chain of DEC/JZ
instructions)
SeeAlso: AH=05h"PCjr",AH=92h,INT 2F/AX=AD80h
--------V-16AA-------------------------------
INT 16 - PTxxx.COM - (xxx=CGA,EGA,VGA,HER...) CALL GATE FOR GRAPHICS
AH = AAh
Various registers set up by high level language.
Return: Graphics performed
Note: PT stands for Paint Tools which is a graphics library for Turbo Pascal,
Modula 2 and others from DataBiten in Sweden. The library is
installed as a memory resident driver.
--------U-16AABBBXEEFF-----------------------
INT 16 U - JORJ v4.3 - INSTALLATION CHECK
AX = AABBh
BX = EEFFh
Return: AX = EEFFh if installed
BX = AABBh if installed
CL = hotkey name (default 6Ah 'j' for Alt-J)
Program: JORJ is a shareware dictionary with phonetic lookup by Jorj Software
Co.
Index: hotkeys;JORJ
--------K-16AF20BX4B33-----------------------
INT 16 - K3PLUS v6.00+ (API v2.0+) - GET EXTENDED BUFFER STATE
AX = AF20h
BX = 4B33h ('K3')
Return: AX = K3 version (same as returned in BX by AX=AF4Dh)
ES:BX -> extended keyboard buffer start
ES:DX -> extended keyboard buffer end
ES:SI -> next keystroke
ES:DI -> last keystroke in buffer
CX = number of keystrokes in buffer
Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C.
Frinke, originally based on the K3 extended German keyboard driver
by Martin Gerdes published in c't magazine in 1988
Note: this function replaces the identical function AH=20h"K3"
SeeAlso: AH=20h"K3",AX=AF25h,AX=AF4Dh,AX=AF50h,INT 2F/AX=ED58h
--------K-16AF25BX4B33-----------------------
INT 16 - K3PLUS v6.00+ (API v2.0+) - COPY INTO EXTENDED BUFFER
AX = AF25h
BX = 4B33h ('K3')
CX = number of keystrokes to copy
ES:SI -> buffer containing keystrokes
Return: CF clear if successful
CF set on error (i.e. buffer full)
CX = number of keystrokes NOT transferred
ES:SI -> first keystroke not transferred
Note: this function replaces the identical function AH=25h"K3"
SeeAlso: AH=25h"K3",AX=AF20h,AX=AF4Dh,AX=AF50h,INT 2F/AX=D44Fh/BX=0001h
--------K-16AF4DBX4B33-----------------------
INT 16 - K3PLUS v6.00+ (API v2.0+) - GET VERSION INFORMATION
AX = AF4Dh
BX = 4B33h ('K3')
Return: AL = 50h if installed
BX = K3 version
DX = API version
ES:CX -> K3 structure (version-dependent) (see #0525)
Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C.
Frinke, originally based on the K3 extended German keyboard driver
by Martin Gerdes published in c't magazine in 1988
SeeAlso: AX=AF20h,AX=AF50h,AX=AF80h,AX=AF82h/BX=4B33h,INT 2F/AX=D44Fh/BX=0000h
SeeAlso: INT 2F/AX=ED58h
Index: installation check;K3PLUS
Format of internal K3 structure:
Offset Size Description (Table 0525)
00h 3 BYTEs signature "K3$"
03h BYTE length of structure, including this byte and signature
04h WORD compiler switch option flags A (see #0526)
06h WORD compiler switch option flags B (see #0527)
08h BYTE internal flags A (see #0528)
09h BYTE internal flags B (see #0529)
0Ah WORD DOS version recorded at startup
0Ch WORD "ActTypeSpeed"
0Eh WORD last Keyboard-ID sent
41ABh translated, 83ABh native (pass-through)
10h WORD offset of K3TAB Special
12h WORD offset of K3TAB German
14h WORD offset of K3TAB Alt
16h WORD offset of K3TAB AltGr
18h WORD offset of K3TAB Ctrl
1Ah WORD offset of K3TAB NPad
1Ch WORD offset of K3TAB CtrlNPad
1Eh WORD offset of K3TAB AltNPad
20h WORD offset of K3TAB ApoTbl or 0000h
22h WORD offset of K3TAB UmlautTbl or 0000h
24h WORD offset of K3TAB UmlautTblExp or 0000h
26h WORD length of video mode table
28h WORD offset of VidMdTbl or 0000h
2Ah BYTE '$' end marker
Bitfields for K3PLUS compiler switch option flags A:
Bit(s) Description (Table 0526)
15 GuINT16Fct2 (general use of INT 16 function 2)
14 Int15df (INT 15 has to be predefined)
13 GuAltNP (general use of Alt Numpad)
12 SupAT (ATs+ supported)
11 GuINT16Fct3 (general use of INT 16 function 3)
10 GuINT16Ret (general use of INT16 bad function return)
9-8 Layout (0-2, 3 reserved; 0=PC, 1=AT, 2=MF)
7 ForceMF (force MF decode without read-ID)
6 KXlate (translate keys for special keyboard)
5 UmlautX (umlaut translation capability included)
4 ApoX (translate apostrophe)
3 DoINT16 (INT 16 handler included)
2 UseCC (CopyCursor included)
1-0 UseEB
0=no extended keystroke buffer, 1=reserve mem, 2=use PSP, 3=reserved
Bitfields for K3 compiler switch option flags B:
Bit(s) Description (Table 0527)
15-11 reserved (0)
10 CtrlSeq (Ctrl macro capability included)
9-8 SupINT16fct55FE
6 DoInstallCheck (check for double installation)
5 SupINT16fct5PcJr (INT 16/AH=05h"PCjr" supported)
4 SendOut (sound and message output supported)
3 SupInt16fct5500 (INT 16/AX=5500h supported)
2 GuINT15Fct4F (calls to INT 15/AH=4Fh supported)
1-0 UseBufferStart (0=use standard area, 1=set standard area,
2=use internal indexes, 3=reserved)
Bitfields for K3 internal flags A:
Bit(s) Description (Table 0528)
7 DoingUmlautExp
6 CallINT15fct4F
5 Beep1 (requires SendOut set in option flags B)
4 ATflag (set for AT, 386, PS/2 Models 50-80)
3 XTflag (set for PC, PC/XT, Micromint PC, Pencock PC, PS/2 Model 30)
2 KeyClick
1 UmlautExp
0 UmlautTrans
Bitfields for K3 internal flags B:
Bit(s) Description (Table 0529)
7-5 reserved
4 TranslateE0 enabled
3 Boot enabled
2 PrintScreen enabled
1 Break enabled
0 ApoPendingBeep
--------K-16AF50BX4B33-----------------------
INT 16 - K3PLUS v6.00+ (API v2.0+) - CHECK IF FUNCTION SUPPORTED
AX = AF50h
BX = 4B33h ('K3')
CH = function
00h get function flags
CL = 00h
Return: CX = supported function flags (see #0530)
nonzero reserved for extensions
SeeAlso: AX=AF20h,AX=AF4Dh,AX=AF51h,AX=AF80h
Bitfields for K3PLUS supported function list:
Bit(s) Description (Table 0530)
0 function 4Dh supported
1 function 50h supported
2-3 reserved (0)
4 function 20h supported
5 function 25h supported
6 function 51h supported
7 reserved (0)
8 function 80h supported
9 function 81h supported
10 function 82h supported
11-15 reserved (0)
--------K-16AF51BX4B33-----------------------
INT 16 - K3PLUS v6.00+ (API v2.00+) - SET OPTIONS
AX = AF51h
BX = 4B33h ('K3')
CX = switches
Return: AL = status
00h done
CX = previous switch settings
01h switch not supported
FFh other error
SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h
--------K-16AF80BX4B33-----------------------
INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 09h VECTOR
AX = AF80h
BX = 4B33h ('K3')
Return: AL = status
00h not supported
81h if successful
ES:CX -> original INT 09 handler
SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF81h,AX=AF82h
--------K-16AF81BX4B33-----------------------
INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 16h HANDLER
AX = AF81h
BX = 4B33h ('K3')
Return: AL = status
00h not supported
82h if successful
ES:CX -> original INT 16 handler
SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h,AX=AF82h
--------K-16AF82BX4B33-----------------------
INT 16 - K3PLUS v6.00+ (API v2.00+) - GET ORIGINAL INT 10h HANDLER
AX = AF82h
BX = 4B33h ('K3')
Return: AL = status
00h not supported
83h if successful
ES:CX -> original INT 10 handler
Program: K3PLUS is an extended keyboard driver by Matthias Paul and Axel C.
Frinke, originally based on the K3 extended German keyboard driver
by Martin Gerdes published in c't magazine in 1988
SeeAlso: AX=AF4Dh,AX=AF50h,AX=AF80h,AX=AF81h,INT 2F/AX=ED58h
--------m-16B0B1-----------------------------
INT 16 - VGARAM v1.00 - INSTALLATION CHECK
AX = B0B1h
ES:DI -> 6 byte signature "VGARAM"
Return: AX = B1B0h if installed,
DS:BX -> VGARAM Status byte: 0 = OFF, 1 = ON
Program: VGARAM is a utility by Brett Warthen which makes VGA memory which is
not used in text modes available for DOS
--------K-16CA--BX736B-----------------------
INT 16 - CtrlAlt Associates STACKEY.COM v3.00 - API
AH = CAh
BX = 736Bh ("sk")
CX = 736Bh
AL = function
00h installation check
Return: DX = words available in keyboard buffer
01h place keystroke in buffer
DX = keystroke (DH = scan code, DL = ASCII character)
Return: DX = words available in keyboard buffer
FFFFh on error
02h flush STACKEY and BIOS keyboard buffers
Return: AX = CAFFh if installed
BX = segment of resident code
CX = STACKEY version (CH = major, CL = minor)
Program: STACKEY is a shareware keyboard-input faking TSR
Index: installation check;STACKEY
--------V-16CA00BX6570-----------------------
INT 16 - CtrlAlt Associates EGAPAL.COM v1.00 - INSTALLATION CHECK
AX = CA00h
BX = 6570h ("ep")
CX = 6570h
Return: AX = CAFFh if installed
BX = segment of resident code
CX = ??? (0090h)
Program: EGAPAL is a TSR supplied with STACKEY which makes EGA palette
settings permanent across mode switches
SeeAlso: AX=CA00h/BX=7670h
--------V-16CA00BX7670-----------------------
INT 16 - CtrlAlt Associates VGAPAL.COM v1.00 - INSTALLATION CHECK
AX = CA00h
BX = 7670h ("vp")
CX = 7670h
Return: AX = CAFFh if installed
BX = segment of resident code
CX = ??? (0090h)
Program: VGAPAL is a TSR supplied with STACKEY which makes VGA palette
settings permanent across mode switches
SeeAlso: AX=CA00h/BX=6570h
--------U-16CB00-----------------------------
INT 16 - PUPClip v1.12+ - INSTALLATION CHECK
AX = CB00h
Return: BX = 4342h if installed
AX = version (AH = major version, AL = BCD minor version)
Program: PUPClip is the freeware PopUP Clipboard for DOS and Windows DOS
sessions by SkullC0DEr
SeeAlso: AX=CB01h,AX=CB02h,AX=CB03h,AX=CB04h,AX=CB05h,AX=CB06h,AX=CB08h
SeeAlso: INT 2F/AX=1701h
--------U-16CB01-----------------------------
INT 16 - PUPClip v1.12+ - GET CLIPBOARD CURSOR POSITION
AX = CB01h
Return: BL = column (0-79)
BH = row (0-49)
SeeAlso: AX=CB00h,AX=CB02h,AX=CB03h
--------U-16CB02-----------------------------
INT 16 - PUPClip v1.12+ - SET CLIPBOARD CURSOR POSITION
AX = CB02h
BL = column (0-79)
BH = row (0-49)
Return: CF clear if successful
CF set on error (invalid position)
SeeAlso: AX=CB00h,AX=CB01h,AX=CB04h
--------U-16CB03-----------------------------
INT 16 - PUPClip v1.12+ - GET CHARACTER FROM CURRENT CLIPBOARD CURSOR POSITION
AX = CB03h
Return: BL = ASCII character at current position
SeeAlso: AX=CB00h,AX=CB02h,AX=CB04h,INT 2F/AX=1705h
--------U-16CB04-----------------------------
INT 16 - PUPClip v1.12+ - WRITE CHARACTER TO CURRENT CLIPBOARD CURSOR POSITION
AX = CB04h
BL = ASCII character to store
SeeAlso: AX=CB00h,AX=CB02h,AX=CB03h,AX=CB05h,INT 2F/AX=1703h
--------U-16CB05-----------------------------
INT 16 - PUPClip v1.12+ - CLEAR CLIPBOARD CONTENTS
AX = CB05h
Return: nothing
SeeAlso: AX=CB00h,AX=CB04h,AX=CB06h,AX=CB07h,INT 2F/AX=1702h
--------U-16CB06-----------------------------
INT 16 - PUPClip v1.12+ - SCROLL UP CLIPBOARD CONTENTS
AX = CB06h
Return: nothing
SeeAlso: AX=CB00h,AX=CB05h,AX=CB07h
--------U-16CB07-----------------------------
INT 16 - PUPClip v1.12+ - SCROLL DOWN CLIPBOARD CONTENTS
AX = CB07h
Return: nothing
SeeAlso: AX=CB00h,AX=CB05h,AX=CB06h
--------U-16CB08-----------------------------
INT 16 - PUPClip v1.12+ - POP UP
AX = CB08h
Return: CF clear if successful
CF set on error (unsupported video mode)
SeeAlso: AX=CB00h
--------U-16D724CX00CB-----------------------
INT 16 U - APCAL v3.20 - GET ???
AX = D724h
CX = 00CBh
Return: AX = 0000h
BX = 0000h
DX:CX -> ??? or 0000h:0000h
Program: APCAL is an optionally-resident shareware appointment calendar by
Gamma Software
SeeAlso: AX=3577h,AX=D724h/CX=00CCh,AX=D724h/CX=00CDh
--------U-16D724CX00CC-----------------------
INT 16 U - APCAL v3.20 - GET ???
AX = D724h
CX = 00CCh
Return: AX = 0000h
BX = 0000h
DX:CX -> ??? (apparently an internal data area)
SeeAlso: AX=D724h/CX=00CBh,AX=D724h/CX=00CDh
--------U-16D724CX00CD-----------------------
INT 16 U - APCAL v3.20 - GET ???
AX = D724h
CX = 00CDh
Return: AX = ??? (5345h seen)
SeeAlso: AX=D724h/CX=00CBh,AX=D724h/CX=00CCh
--------v-16DD--------------------------
INT 16 - VIRUS - "Frumble" - INSTALLATION CHECK
AH = DDh
Return: AL = DDh if resident
SeeAlso: INT 13/AX=FD50h,INT 21/AX=010Fh,INT 21/AX=0B56h
--------s-16DFDF-----------------------------
INT 16 U - Corel PowerSCSI - FDAUDIO.COM - INSTALLATION CHECK
AX = DFDFh
Return: ES:DI -> ASCII signature "FDAUDIO/CD" followed by ASCII date, i.e.
"06/18/93" if installed
--------b-16E000-----------------------------
INT 16 - AMI BIOS - BIOS-FLASH Interface - GET VERSION NUMBER
AX = E000h
Return: CF clear if successful
AL = FAh
BX = version number (BCD) (0200h = v2.00)
CF set on error (not implemented)
Notes: this interface is available on AMI BIOSes built from AMI core version
8/8/93 (HiFlex BIOS) or 11/15/93 (WinBIOS) or later
the "Meningitis" virus uses this API when attacking a system equipped
with an AMI BIOS; it is supposedly able to write itself into the
Flash ROM and thus make itself part of the BIOS
SeeAlso: AX=E001h,AX=E004h,AX=E006h,AX=E008h,AX=E00Ah,AX=E00Bh,AX=E0FFh
--------b-16E001-----------------------------
INT 16 - AMI BIOS - BIOS-FLASH Interface - GET CHIPSET SAVE/RESTORE SIZE
AX = E001h
Return: CF clear if successful
AL = FAh
BX = number of bytes required to save chipset configuration
CF set on error
SeeAlso: AX=E000h,AX=E002h,AX=E003h
--------b-16E002-----------------------------
INT 16 - AMI BIOS - BIOS-FLASH Interface - SAVE CHIPSET STATUS & PREPARE CHPSET
AX = E002h
ES:DI -> buffer for storing chipset status
Return: CF clear if successful
AL = FAh
CF set on error
SeeAlso: AX=E000h,AX=E001h,AX=E003h
--------b-16E003-----------------------------
INT 16 - AMI BIOS - BIOS-FLASH Interface - RESTORE CHIPSET STATUS
AX = E003h
ES:DI -> buffer in which chipset status was previously stored
Return: CF clear if successful
AL = FAh
CF set on error
SeeAlso: AX=E000h,AX=E001h,AX=E002h
--------b-16E004-----------------------------
INT 16 - AMI BIOS - BIOS-FLASH Interface - LOWER PROGRAMMING VOLTAGE Vpp
AX = E004h
Return: CF clear if successful
AL = FAh
CF set on error
Note: this function does not return until the voltage level stabilizes
SeeAlso: AX=E000h,AX=E005h,AX=E006h
--------b-16E005-----------------------------
INT 16 - AMI BIOS - BIOS-FLASH Interface - RAISE PROGRAMMING VOLTAGE Vpp
AX = E005h
Return: CF clear if successful
AL = FAh
CF set on error
Note: this function does not return until the voltage level stabilizes
SeeAlso: AX=E000h,AX=E004h,AX=E007h
--------b-16E006-----------------------------
INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH WRITE PROTECT
AX = E006h
Return: CF clear if successful
AL = FAh
CF set on error
Note: this function performs any delay required to allow the Flash ROM to
stabilize in the write-protected state
SeeAlso: AX=E000h,AX=E004h,AX=E007h
--------b-16E007-----------------------------
INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH WRITE ENABLE
AX = E007h
Return: CF clear if successful
AL = FAh
CF set on error
Note: this function performs any delay required to allow the Flash ROM to
stabilize in the write-enabled state
SeeAlso: AX=E000h,AX=E005h,AX=E006h,AX=E008h
--------b-16E008-----------------------------
INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH SELECT
AX = E008h
Return: CF clear if successful
AL = FAh
CF set on error
Desc: select the Flash ROM if the system contains both EPROM and Flash ROM
Note: this function performs any delay required to allow the Flash ROM to
stabilize in the selected state; if no EPROM is present, this
function always returns successfully
SeeAlso: AX=E000h,AX=E007h,AX=E009h
--------b-16E009-----------------------------
INT 16 - AMI BIOS - BIOS-FLASH Interface - FLASH DE-SELECT
AX = E009h
Return: CF clear if successful
AL = FAh
CF set on error
Desc: select the EPROM if the system contains both EPROM and Flash ROM
Note: this function performs any delay required to allow the Flash ROM to
stabilize in the de-selected state; if no EPROM is present, this
function always returns successfully
SeeAlso: AX=E000h,AX=E006h,AX=E008h
--------b-16E00A-----------------------------
INT 16 - AMI BIOS - BIOS-FLASH Interface - VERIFY ALLOCATED MEMORY
AX = E00Ah
BX = number of paragraphs
ES = starting segment of memory
Return: CF clear if successful
AL = FAh
CF set on error
Desc: determine whether the specified memory may be used for flash
programming
Note: always returns error if BX is zero on entry
SeeAlso: AX=E000h,AX=E00Bh
--------b-16E00B-----------------------------
INT 16 - AMI BIOS - BIOS-FLASH Interface - SAVE INTERNAL CACHE STATUS
AX = E00Bh
ES:DI -> buffer for internal cache status (minimum 4Kbytes)
Return: CF clear if successful
AL = FAh
CF set on error
Note: always returns error if the hardware does not contain internal
cache or this call is made in protected mode
SeeAlso: AX=E000h,AX=E00Ah,AX=E00Ch
--------b-16E00C-----------------------------
INT 16 - AMI BIOS - BIOS-FLASH Interface - RESTORE INTERNAL CACHE STATUS
AX = E00Ch
ES:DI -> buffer containing internal cache status (minimum 4Kbytes)
Return: CF clear if successful
AL = FAh
CF set on error
Note: always returns error if the hardware does not contain internal
cache or this call is made in protected mode
SeeAlso: AX=E000h,AX=E00Bh
--------t-16E0E0-----------------------------
INT 16 - TurboPower TSRs - ALTERNATE INSTALLATION CHECK
AX = E0E0h
Return: AX = 1F1Fh if installed
DWORD 0040h:00F0h -> last data block in TSR list (see #0532)
Note: the returned TSR list provides support for communication among TSRs
built with TurboPower's Turbo Professional and Object Professional
libraries for Turbo Pascal
SeeAlso: AX=F0F0h
--------b-16E0FF-----------------------------
INT 16 - AMI BIOS - BIOS-FLASH Interface - GENERATE CPU RESET
AX = E0FFh
Return: never
SeeAlso: AX=E000h,INT 14/AH=17h"FOSSIL"
--------U-16ED--BHED-------------------------
INT 16 - BORLAND TURBO LIGHTNING - API
AH = EDh
BH = EDh
BL = function
00h installation check
Return: AX = 5205h
CH = major version
CL = minor version
01h identical to function 00h???
02h get resident data segment
Return: AX = data segment of resident portion
03h get resident ???
Return: AX = offset of some buffer in resident code seg
04h redefine auxiliary dictionary
DS:SI -> counted filename string
Return: AL = result code
05h select active environment
AL = environment (00h to 0Ch)
Return: AX = status
0000h if OK
0001h if out of range
06h toggle AutoProof???
AL = state (00h off, 01h on)
07h ???
08h ???
AL = char???
CX = ???
DX = ???
Return: AX = 0, 1 or 2
09h ???
0Ah ???
CX = ???
DX = ???
Return: AX = ???
0Bh check dictionary integrity???
DS:SI -> counted dictionary filename string
Return: AX = 0, 40h, 80h
0Ch spellcheck string (disk dictionary, possibly RAM dict as well)
DS:SI -> counted string to check
Return: AH = 0
AL = result code
00h string found in dictionary
20h string begins more than one word
40h string not found
0Dh set ???
(sets an internal flag)
0Eh spellcheck string (RAM dictionary only)
DS:SI -> counted string to check
Return: AH = 00h
AL = result code
00h string found in dictionary
01h string not found
02h ???
0Fh ???
10h ???
Notes: AX in general returns an error code from most functions.
Index: installation check;Turbo Lightning
--------U-16EF-------------------------------
INT 16 - CALCULATOR - INSTALLATION CHECK
AH = EFh
Return: AX = 0088h if installed
Program: CALCULATOR is a shareware popup calculator by Andrzej Brzezinski and
Marek Kosznik
--------b-16F0-------------------------------
INT 16 - Compaq 386 and newer - SET CPU SPEED
AH = F0h
AL = speed code (see #0531)
if AL=09h,
CX = speed value, 1 (slowest) to 50 (full), 3 ~= 8088
Note: also supported by some versions of AMI BIOS dated June 1992 or later;
speed codes 0 or 1 are used for Low Speed, 2 for High Speed
SeeAlso: AH=F1h,AH=F3h
(Table 0531)
Values for speed code:
00h equivalent to 6 MHz 80286 (COMMON)
01h equivalent to 8 MHz 80286 (FAST)
02h full 16 MHz (HIGH)
03h toggles between 8 MHz-equivalent and speed set by system board switch
(AUTO or HIGH)
08h full 16 MHz except 8 MHz-equivalent during floppy disk access
09h specify speed directly
--------t-16F0F0-----------------------------
INT 16 - TurboPower TSRs - INSTALLATION CHECK
AX = F0F0h
Return: AX = 0F0Fh if installed
ES:DI -> last data block in TSR list (see #0532)
Note: the returned TSR list provides support for communication among TSRs
built with TurboPower's Turbo Professional and Object Professional
libraries for Turbo Pascal
SeeAlso: AX=E0E0h
Format of TurboPower TSR data block:
Offset Size Description (Table 0532)
00h DWORD pointer to program tag (counted ASCII string)
04h WORD interface version number (0400h)
06h DWORD pointer to command entry point
0Ah DWORD pointer to previous data block (0000h:0000h if none)
0Eh DWORD pointer to next data block (0000h:0000h if none)
---swappable TSRs only---
12h DWORD pointer to swapping data
16h DWORD pointer to user data
more???
--------b-16F1-------------------------------
INT 16 - Compaq 386 and newer - READ CURRENT CPU SPEED
AH = F1h
Return: AL = speed code (see #0531)
if AL = 09h, CX = speed code
Note: also supported by some versions of AMI BIOS dated June 1992 or later
SeeAlso: AH=F0h,AH=F3h
--------b-16F2-------------------------------
INT 16 - Compaq 386 and newer - DETERMINE ATTACHED KEYBOARD TYPE
AH = F2h
Return: AL = type
00h if 11-bit AT keyboard is in use
01h if 9-bit PC keyboard is in use
AH = 00h (04/08/93 system ROM)
--------b-16F3-------------------------------
INT 16 - Compaq 80286s - SET CPU SPEED LIMIT (OVERRIDE JUMPER)
AH = F3h
AL = new limit
00h limit is 6 Mhz
01h limit is 8 Mhz/6 Mhz
SeeAlso: AH=F0h,AH=F1h
--------U-16F398-----------------------------
INT 16 U - NORTON GUIDES - INSTALLATION CHECK
AX = F398h
Return: AX = 6A73h ("js")
BH = BIOS scan code of current hot key
BL = ASCII code of current hot key
Note: NG.EXE was written by John Socha
--------b-16F400-----------------------------
INT 16 - Compaq Systempro and higher - CACHE CONTROLLER STATUS
AX = F400h
Return: AH = E2h (*)
AL = status
00h not present
01h enabled
02h disabled
CX = cache memory size
bit 15: cache size information is NOT valid
bits 14-0: cache memory size in kilobytes
DH = cache write technology
bit 7: cache write information is NOT valid
bits 6-1: reserved (0)
bit 0: 0 = Write-through caching
1 = Write-back caching
DL = cache type
bit 7: cache type information is NOT valid
bits 6-1: reserved (0)
bit 0: 0 = Direct mapped
1 = Two-way set-associative
Notes: also supported by some versions of AMI BIOS dated June 1992 or later
many (most) BIOSes return a modified AH when called for an unsupported
or non-keyboard function (typically, the highest supported keyboard
function [normally 12h] is subtracted from the original AH)
SeeAlso: AX=F401h,AX=F402h
--------b-16F401-----------------------------
INT 16 - Compaq Systempro and higher - ENABLE CACHE CONTROLLER
AX = F401h
Return: AX = E201h
Notes: also supported by some versions of AMI BIOS dated June 1992 or later
many (most) BIOSes return a modified AH when called for an unsupported
or non-keyboard function (typically, the highest supported keyboard
function [normally 12h] is subtracted from the original AH)
SeeAlso: AX=F400h,AX=F402h
--------b-16F402-----------------------------
INT 16 - Compaq Systempro and higher - DISABLE CACHE CONTROLLER
AX = F402h
Return: AX = E202h
Notes: also supported by some versions of AMI BIOS dated June 1992 or later
many (most) BIOSes return a modified AH when called for an unsupported
or non-keyboard function (typically, the highest supported keyboard
function [normally 12h] is subtracted from the original AH)
SeeAlso: AX=F400h,AX=F401h
--------v-16FA00DX5945-----------------------
INT 16 U - PC Tools v8+ VSAFE, VWATCH - INSTALLATION CHECK
AX = FA00h
DX = 5945h
Return: CF clear
DI = 4559h
BX = BIOS hotkey scancode (default 2F00h) (VSAFE only)
FFFFh if disabled
Note: MS-DOS 6.0 bundles VSAFE and VWATCH as part of its virus protection
SeeAlso: AX=FA05h,INT 13/AH=FAh,INT 21/AH=FAh"VDEFEND",INT 2F/AX=6282h
--------v-16FA01DX5945-----------------------
INT 16 U - PC Tools v8+ VSAFE, VWATCH - UNINSTALL
AX = FA01h
DX = 5945h
Return: CF clear if successful
DI = 4559h
SeeAlso: AX=FA00h
--------v-16FA02DX5945-----------------------
INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET/SET OPTIONS
AX = FA02h
DX = 5945h
BL = new parameter flags (see #0533)
Return: CF clear
DI = 4559h
CL = old value of parameter flags
Bitfields for VSAFE/VWATCH parameter flags:
Bit(s) Description (Table 0533)
7 Protect executable files
6 Protect FD boot sector
5 Protect HD boot sector
4 Boot sector viruses
3 Check executable files
2 General write protect
1 Resident
0 HD Low level format
--------v-16FA03DX5945-----------------------
INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET ???
AX = FA03h
DX = 5945h
Return: CF clear
DI = 4559h
AX = 0002h
--------v-16FA04DX5945-----------------------
INT 16 U - PC Tools v8+ VSAFE - GET HOTKEY DISABLE FLAG
AX = FA04h
DX = 5945h
Return: CF clear
DI = 4559h
BL = hotkey disable flag (nonzero if hotkey disabled)
Note: this function is a NOP under VWATCH, merely returning CF clear/DI=4559h
SeeAlso: AX=FA00h,AX=FA05h
--------v-16FA05DX5945-----------------------
INT 16 U - PC Tools v8+ VSAFE - SET HOTKEY DISABLE FLAG
AX = FA05h
DX = 5945h
BL = new value of hotkey disable flag (nonzero to disable hotkey)
Return: CF clear
DI = 4559h
Note: this function is a NOP under VWATCH, merely returning CF clear/DI=4559h
SeeAlso: AX=FA00h,AX=FA04h
--------v-16FA06DX5945-----------------------
INT 16 U - PC Tools v8+ VSAFE, VWATCH - GET NETWORK DRIVES TEST FLAG
AX = FA06h
DX = 5945h
Return: CF clear
DI = 4559h
BL = test status
00h don't monitor network drives (default for VWATCH v2.1)
FFh monitor network drives (default for VSAFE v2.0)
CL = ??? (only VSAFE 2.0)
SeeAlso: AX=FA07h
--------v-16FA07DX5945-----------------------
INT 16 U - PC Tools v8+ VSAFE, VWATCH - SET NETWORK DRIVES TEST FLAG
AX = FA07h
DX = 5945h
BL = new state
00h don't monitor
01h monitor network drives
Return: CF clear
DI = 4559h
Note: VWATCH v2.1 (from PC Tools 9.0) returns CF set instead
SeeAlso: AX=FA00h,AX=FA06h
--------v-16FA08DX5945-----------------------
INT 16 U - PC Tools v9+ VWATCH v2.1 - ???
AX = FA08h
DX = 5945h
Return: CF clear
DI = 4559h
AX = ??? (0002h)
BX = version (BH=major, BL=two-digit minor)
Note: this function is not supported by the PC Tools 9.0 VSAFE v2.0
SeeAlso: AX=FA00h,AX=FA06h
--------U-16FE55-----------------------------
INT 16 U - PC Tools v8+ programs - GET ???
AX = FE55h
CX = segment of resident program or 0000h for last loaded
DX = 0000h
Return: DX = resident code segment (unchanged if CX=0000h on entry)
AX = ??? or 0000h
Note: this call is supported by CPSCHED, CPTASK, DATAMON, DPROTECT, DRIVEMAP,
and DSKLIGHT beginning in PC Tools v8.0; programs other than CPTASK
seem to hook it merely to return the same AX as the CPTASK loaded
prior to them returned
--------U-16FEA4-----------------------------
INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - RESET ???
AX = FEA4h
Return: nothing
Note: this function is identical to AX=FFA4h, and is implemented by the same
code in DESKTOP
SeeAlso: AX=FFA4h
--------U-16FEC6-----------------------------
INT 16 U - PC Tools v7+ CPSCHED - ENABLE/DISABLE CPSCHED API
AX = FEC6h
BL = new state (00h enabled, nonzero disabled)
Return: nothing
Desc: specify whether CPSCHED API calls other than this one and AX=FE55h will
be honored
--------U-16FED3-----------------------------
INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - ???
AX = FED3h
DS:SI -> 92-byte data record for ???
Return: ???
Note: this function is identical to AX=FFD3h, and is implemented by the same
code in DESKTOP
SeeAlso: AX=FFD3h
--------U-16FEDC-----------------------------
INT 16 U - PC Tools v7+ CPSCHED - UNHOOK INTERRUPTS
AX = FEDCh
Return: AX,DX destroyed
Index: uninstall;CPSCHED
--------U-16FEEFCX0000-----------------------
INT 16 U - PC Tools v7+ CPSCHED/DESKTOP - INSTALLATION CHECK
AX = FEEFh
CX = 0000h
Return: CX = ABCDh if PC Tools scheduler (CPSCHED or DESKTOP) installed
BX = segment of resident portion
DX = (CPSCHED v8.0) resident CS
Note: this function is identical to AX=FFD3h, and is implemented by the same
code in DESKTOP
SeeAlso: AX=FFEFh
--------U-16FEF1-----------------------------
INT 16 U - PC Tools v7 only CPSCHED/DESKTOP - ALTERNATE INSTALLATION CHECK
AX = FEF1h
BX = ???
Return: CX = 5555h if PC Tools scheduler (CPSCHED or DESKTOP) installed
DX = 5555h
Note: this function is identical to AX=FFD3h, and is implemented by the same
code in DESKTOP
SeeAlso: AX=FFF1h
--------K-16FF-------------------------------
INT 16 - KEYBOARD - KBUF extensions - ADD KEY TO TAIL OF KEYBOARD BUFFER
AH = FFh
DX = scan code
Return: AL = status
00h success
01h failure
Program: KBUF is a keyboard buffer expander by Mark Adler
SeeAlso: AH=05h
--------V-16FF-------------------------------
INT 16 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - QUERY ZOOM INTERRUPT
AH = FFh
Return: AL = interrupt number to which BIOS keyboard handler has been relocated
AL+1 = Zoom interrupt number
BX = hotkey
Notes: the default interrupts are 60h for keyboard and 61h for Zoom interrupt;
the default hot key is F10
not all vendors include the Tseng TSR which supports these functions
SeeAlso: INT 61/AX=0000h"OPTIMA",INT 61/AX=0005h"OPTIMA"
Index: hotkeys;OPTIMA 1024 VGA
----------16FF--BH00-------------------------
INT 16 - FREEZE.COM - INSTALLATION CHECK
AH = FFh
BH = 00h
Return: BH = FFh if installed
Program: FREEZE is a PC Magazine utility
--------d-16FF70BX0000-----------------------
INT 16 U - PC Tools v8+ DRIVEMAP - INSTALLATION CHECK
AX = FF70h
BX = 0000h
CX = 4C69h ('Li')
DX = 6E6Bh ('nk')
Return: AX = 0000h
CX = 4350h ('CP')
DH = major version
DL = minor version
Program: DRIVEMAP is a redirector which allows drives on computers connected
over the parallel or serial ports to appear as local drives
SeeAlso: AX=FF70h/BX=0001h,AX=FF70h/BX=0002h
--------d-16FF70BX0001-----------------------
INT 16 U - PC Tools v8+ DRIVEMAP - ???
AX = FF70h
BX = 0001h
DL = ???
Return: AX = ???
DH = ???
SeeAlso: AX=FF70h/BX=0000h,AX=FF70h/BX=0002h
--------d-16FF70BX0002-----------------------
INT 16 U - PC Tools v8+ DRIVEMAP - ???
AX = FF70h
BX = 0002h
CX = ???
DX = ???
Return: AX = ??? or FFFEh/FFFFh on error
DL = ???
BUG: DRIVEMAP will branch to random locations for BX values other than
those listed above for v8.0-9.0 because a) the incorrect register is
range-tested, resulting in BX=0003h-5CD6h being accepted as valid
function numbers, and b) the conditional which branches on invalid
function numbers jumps to the following instruction, becoming a NOP
SeeAlso: INT 2F/AX=9203h"DRIVEMAP"
Index: installation check;DRIVEMAP
--------T-16FF80BX0000-----------------------
INT 16 U - PC Tools v8+ CPTASK - INSTALLATION CHECK
AX = FF80h
BX = 0000h
CX = 0000h
DX = 0000h
Return: CX = 5555h if installed
Program: CPTASK is a task switcher by Central Point Software
--------T-16FF80BX0001-----------------------
INT 16 U - PC Tools v8+ CPTASK - GET ???
AX = FF80h
BX = 0001h
???
Return: DX:SI -> task list??? (ten entries of 70h bytes in v9.0)
BX = ??? (PSP segment of resident code???)
--------T-16FF80BX0002-----------------------
INT 16 U - PC Tools v8+ CPTASK - GET ???
AX = FF80h
BX = 0002h
Return: DX:SI -> ???
--------T-16FF80BX0003-----------------------
INT 16 U - PC Tools v8+ CPTASK - GET ??? FLAGS
AX = FF80h
BX = 0003h
Return: AX = flags (see #0534)
SeeAlso: AX=FF80h/BX=0004h,AX=FF80h/BX=0006h
Bitfields for CPTASK flags:
Bit(s) Description (Table 0534)
10 ???
13 ???
14 ???
15 ???
--------T-16FF80BX0004-----------------------
INT 16 U - PC Tools v8+ CPTASK - SET ???
AX = FF80h
BX = 0004h
CX = new value of ???
Return: ???
Note: this function also sets bit 14 of the flags word returned by
AX=FF80h/BX=0003h
--------T-16FF80BX0005-----------------------
INT 16 U - PC Tools v8+ CPTASK - GET NUMBER OF ACTIVE TASKS???
AX = FF80h
BX = 0005h
Return: AX = number of active tasks???
--------T-16FF80BX0006-----------------------
INT 16 U - PC Tools v8+ CPTASK - GET AND CLEAR ??? FLAG
AX = FF80h
BX = 0006h
Return: AX = old state (0000h clear, 0001h set)
Note: the tested flag is bit 13 of the flags returned by AX=FF80h/BX=0003h
--------T-16FF80BX0007-----------------------
INT 16 U - PC Tools v8+ CPTASK - ???
AX = FF80h
BX = 0007h
ES:DI -> ???
???
Return: ???
--------T-16FF80BX0008-----------------------
INT 16 U - PC Tools v8+ CPTASK - ???
AX = FF80h
BX = 0008h
???
Return: ???
--------T-16FF80BX0009-----------------------
INT 16 U - PC Tools v8+ CPTASK - GET ???
AX = FF80h
BX = 0009h
Return: CL = ???
CH = ??? (01h or 02h)
--------T-16FF80BX000A-----------------------
INT 16 U - PC Tools v9+ CPTASK - SET ???
AX = FF80h
BX = 000Ah
DS:SI -> 128-byte buffer containing ???
--------T-16FF80BX000B-----------------------
INT 16 U - PC Tools v9+ CPTASK - SET ???
AX = FF80h
BX = 000Bh
DX = index of ??? task (1-10)
--------T-16FF80BX000C-----------------------
INT 16 U - PC Tools v9+ CPTASK - SET IDLE??? DELAY
AX = FF80h
BX = 000Ch
CX = new delay time in minutes
--------T-16FF80BX4350-----------------------
INT 16 U - PC Tools v8+ CPTASK - UNINSTALL
AX = FF80h
BX = 4350h ('CP')
CX = 5354h ('ST')
Return: never returns; terminates all tasks and exits to program originally
calling CPTASK
--------U-16FF90-----------------------------
INT 16 U - PC Tools v8+ DESKTOP - ???
AX = FF90h
???
Return: ???
Note: available only when popped up
--------U-16FF91-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FF91h
???
Return: AX = 0000h
Note: calls AX=FFFDh after ???
SeeAlso: AX=FF92h,AX=FFFDh
--------U-16FF92-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FF92h
???
Return: AX = 0000h
Note: like AX=FF91h, but temporarily sets ??? to 3
SeeAlso: AX=FF91h,AX=FFFDh
--------U-16FF93-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - SET ??? FLAG
AX = FF93h
--------U-16FF94-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - SET ???
AX = FF94h
CX = ??? (default 0017h)
--------U-16FF95-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - SET ???
AX = FF95h
BX = ???
--------U-16FF96-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FF96h
CL = ???
Return: AX = ???
--------U-16FF97-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FF97h
DS:DX -> buffer for ??? (see #0535)
Return: ???
Format of PC Tools DESKTOP buffer:
Offset Size Description (Table 0535)
00h 48 BYTEs ???
30h 128 BYTEs ???
--------U-16FF98-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - OPEN \DESK.OVL FILE AND SEEK TO OVERLAY
AX = FF98h
DX = byte offset in file of overlay header (see #0536)
Return: BX = file handle for DESK.OVL file
Desc: open the DESK.OVL file, seek to the specified offset, read in the
overlay header, and seek to the offset specified by the header
Format of PC Tools DESKTOP overlay header:
Offset Size Description (Table 0536)
00h 12 BYTEs NUL-padded ASCII overlay filename
0Ch DWORD offset within DESK.OVL file of actual overlay
--------U-16FF99-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FF99h
???
Return: ???
--------U-16FF9A-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - GET NAME OF COLOR SCHEME
AX = FF9Ah
Return: ES:BX -> name of current color scheme
Note: available even if not popped up
--------U-16FF9B-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - UNUSED
AX = FF9Bh
Return: ???
Note: sounds triple-length beep
--------T-16FF9C-----------------------------
INT 16 U - PC Tools v8+ CPTASK - SET/CLEAR ??? POINTER
AX = FF9Ch
BL = function
00h set ??? pointer
DS:SI -> ???
01h clear pointer to 0000h:0000h
----------16FF9D-----------------------------
INT 16 U - PC Tools v8+ CPTASK, VSAFE - ???
AX = FF9Dh
ES:BX -> ??? word
Return: ???
Note: if ES is non-zero, the word pointed at by ES:BX determines whether the
??? flag is cleared (word = 0000h) or set (word is nonzero). The
flag is always cleared if ES=0000h.
--------U-16FF9E-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FF9Eh
DL = ???
bit 7: ???
bits 6-0: function number??? (00h,01h,other)
???
Return: ???
--------U-16FFA1-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FFA1h
???
Return: ???
Note: same as AX=FFA2h, except ??? set to FFh
SeeAlso: AX=FFA2h
--------U-16FFA2-----------------------------
INT 16 U - PC Tools v7+ DESKTOP - ???
AX = FFA2h
???
Return: ???
Note: calls AX=FFC7h (remove window) and AX=FFFDh
SeeAlso: AX=FFA1h,AX=FFC7h,AX=FFFDh
--------y-16FFA3BX0000-----------------------
INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - INSTALLATION CHECK
AX = FFA3h
BX = 0000h
CX = 0000h
Return: AX = segment of resident code
BX = 5555h
CX = 5555h
Note: also supported by DOS 6 UNDELETE which is licensed from PC Tools
SeeAlso: INT 21/AH=3Fh"NB.SYS",INT 21/AX=4101h,INT 2F/AX=6284h
--------y-16FFA3BX0001-----------------------
INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
AX = FFA3h
BX = 0001h
CX = 0001h
Return: AX:BX -> ???
CX = BX
--------y-16FFA3BX0002-----------------------
INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
AX = FFA3h
BX = 0002h
CX = 0002h
Return: AX = ??? (0 or 1)
CX = BX = AX
--------y-16FFA3BX0003-----------------------
INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
AX = FFA3h
BX = 0003h
CX = 0003h
Return: AX = ??? (0 or 1)
CX = BX = AX
--------y-16FFA3BX0004-----------------------
INT 16 U - PC Tools v7+ DATAMON - SET ??? FLAG
AX = FFA3h
BX = 0004h
CX = 0004h
SeeAlso: AX=FFA3h/BX=0005h
--------y-16FFA3BX0005-----------------------
INT 16 U - PC Tools v7+ DATAMON - CLEAR ??? FLAG
AX = FFA3h
BX = 0005h
CX = 0005h
SeeAlso: AX=FFA3h/BX=0004h
--------y-16FFA3BX0006-----------------------
INT 16 U - PC Tools v7+ DATAMON - SET PSP SEGMENT ???
AX = FFA3h
BX = 0006h
CX = 0006h
DX = current PSP segment as known to DOS??? or 0000h
--------d-16FFA3BXFFA3-----------------------
INT 16 U - PC Tools v9 DSKLIGHT - INSTALLATION CHECK
AX = FFA3h
BX = FFA3h
CX = FFA3h
Return: BX = CX = 5555h if installed
AX = resident code segment
Program: DSKLIGHT is a TSR included with PC Tools v9+ which displays a disk-
access indicator on the screen; in v7 and v8, this function was
provided by DATAMON
Note: DSKLIGHT chains to the previous handler if BX or CX is not FFA3h
--------U-16FFA4-----------------------------
INT 16 U - PC Tools v7-8 DESKTOP - ???
AX = FFA4h
Return: ???
Notes: available even when not popped up
sets unknown flag if ??? conditions met
SeeAlso: AX=FEA4h
--------c-16FFA5CX1111-----------------------
INT 16 - PC-Cache v6+ - INSTALLATION CHECK
AX = FFA5h
CX = 1111h
Return: CH = 00h if installed
ES:DI -> internal data (see #0537)
CL = cache state
01h enabled
02h disabled
SeeAlso: INT 13/AH=27h,INT 13/AH=A0h,INT 21/AH=2Bh/CX=4358h
Format of PC-Cache internal data:
Offset Size Description (Table 0537)
-1Ch 20 BYTEs cached drive list, one byte per drive A: to T:
each byte is either blank (20h) or drive letter (41h-54h)
-8 BYTE ???
-7 WORD number of physical transfers (scaled down to 0000h-7FFFh)
-5 WORD number of saved transfers (scaled down to 0000h-7FFFh)
-3 3 BYTEs ???
--------c-16FFA5CXAAAA-----------------------
INT 16 - PC-Cache v6+ - ENABLE DELAYED WRITES
AX = FFA5h
CX = AAAAh
Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5)
SeeAlso: AX=FFA5h/CX=CCCCh
--------c-16FFA5CXCCCC-----------------------
INT 16 - PC-Cache v6+ - FLUSH CACHE AND DISABLE DELAYED WRITES
AX = FFA5h
CX = CCCCh
Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5)
Note: delayed writes are automatically disabled on EXECing
(see INT 21/AH=4Bh) a program named either WIN.CO? or DV.E??;
however, delayed writes are not automatically reenabled upon the
program's termination in v6.
SeeAlso: AX=FFA5h/CX=AAAAh,AX=FFA5h/CX=FFFFh
--------c-16FFA5CXDDDD-----------------------
INT 16 - PC-Cache v6+ - FLUSH AND DISABLE CACHE
AX = FFA5h
CX = DDDDh
SeeAlso: AX=FFA5h/CX=EEEEh,AX=FFA5h/CX=FFFFh
--------c-16FFA5CXEEEE-----------------------
INT 16 - PC-Cache v6+ - ENABLE CACHE
AX = FFA5h
CX = EEEEh
SeeAlso: AX=FFA5h/CX=DDDDh
--------c-16FFA5CXFFFF-----------------------
INT 16 - PC-Cache v6+ - FLUSH CACHE
AX = FFA5h
CX = FFFFh
SeeAlso: AX=FFA5h/CX=CCCCh,AX=FFA5h/CX=DDDDh,INT 13/AH=A1h
--------U-16FFA6-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ???
AX = FFA6h
Return: DS:SI -> ???
Note: available only when popped up
--------U-16FFA7-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ??? PATH
AX = FFA7h
Return: DS:SI -> ASCIZ path (directory from which PCTools was run???)
--------U-16FFA8-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
AX = FFA8h
DS:SI -> three consecutive ASCIZ strings for ??? (max 256 bytes total)
???
Return: ???
Notes: available only when popped up
strings copied into internal buffer, among other actions
--------U-16FFA9-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET VERSION STRING
AX = FFA9h
Return: DS:SI -> version string
--------U-16FFAA-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
AX = FFAAh
???
Return: ???
Note: available only when popped up
--------U-16FFAB-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET EDITOR SETTINGS???
AX = FFABh
Return: DS:SI -> editor setting strings???
--------U-16FFAC-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
AX = FFACh
DL = ???
Note: available only when popped up
--------U-16FFAD-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
AX = FFADh
DL = ???
--------U-16FFAE-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ???
AX = FFAEh
Return: AL = ???
--------U-16FFAF-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
AX = FFAFh
DL = ???
--------U-16FFB0-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
AX = FFB0h
BL = ???
--------U-16FFB1-----------------------------
INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
AX = FFB1h
???
Return: ???
--------U-16FFB2-----------------------------
INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ???
AX = FFB2h
Return: DS:SI -> ???
--------U-16FFB3-----------------------------
INT 16 U - PC Tools v5.5-8.0 DESKTOP - ???
AX = FFB3h
???
Return: ???
Note: available only when popped up
--------U-16FFB4-----------------------------
INT 16 U - PC Tools v5.5-8.0 DESKTOP - SET ??? FLAG
AX = FFB4h
Note: available only when popped up
SeeAlso: AX=FFBBh
--------U-16FFB5-----------------------------
INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET WINDOW PARAMETERS
AX = FFB5h
BX = window specifier (000Fh to 0019h) (see #0538)
DX = 0000h get, nonzero = set
ES:DI -> window parameter buffer (see #0539)
SeeAlso: AX=FFCBh
(Table 0538)
Values for PC Tools DESKTOP window specifier:
000Fh comm/FAX
0014h hotkey selection
0015h ASCII table
0016h system colors menu
Format of PC Tools DESKTOP window parameters:
Offset Size Description (Table 0539)
00h BYTE rows in window, not counting frame
01h BYTE columns in window, not counting frame
02h BYTE row number of top of window
03h BYTE 2*column number of left of window
04h BYTE character attribute for ???
05h BYTE character attribute for background/border
06h BYTE character attribute for ???
07h DWORD pointer to ??? on screen
0Bh 4 BYTEs ???
0Fh BYTE nonzero if window may be resized
Note: if running in monochrome mode, character attributes at offsets 04h to
06h are stored unchanged, but attributes other than 07h, 0Fh, or 70h
are changed to 07h on reading
--------U-16FFB6-----------------------------
INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ???
AX = FFB6h
Return: AH = ???
AL = ???
--------U-16FFB7-----------------------------
INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET ???
AX = FFB7h
BX = direction
0000h copy to buffer
else copy from buffer
DS:SI -> 70-byte buffer with ???
Return: data copied
Note: available only when popped up under v6.0+
--------U-16FFB8-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET/SET???
AX = FFB8h
BH = subfunction
00h get
Return: BL = old value of ???
CL = old value of ??? (v6.0+)
CH = old value of ??? (v6.0+)
nonzero set
BL = new value for ???
CL = new value for ??? (v6.0+)
CH = new value for ??? (v6.0+)
DH = ???
Return: AL = old value replaced by CL (v6.0+)
AH = old value replaced by CH (v6.0+)
--------U-16FFB9-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFB9h
???
Return: AX = ???
CX = ???
DS:SI -> ???
ES:DI -> ???
--------U-16FFBA-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFBAh
???
Return: AX = ???
Note: available only when popped up
--------U-16FFBB-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLEAR ??? FLAG
AX = FFBBh
Note: available only when popped up
SeeAlso: AX=FFB4h
--------U-16FFBC-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - RESTORE ORIGINAL SCREEN???
AX = FFBCh
--------U-16FFBD-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? DATABASE INDEXING MESSAGES
AX = FFBDh
???
Return: ???
--------U-16FFBE-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFBEh
???
Return: ???
Note: available only when popped up
--------U-16FFBF-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFBFh
BX = DOS file handle to write on
???
Return: ???
Note: available only when popped up
--------U-16FFC0-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFC0h
???
Return: AX = 0000h if successful
AX = FFFFh on error
Note: available only when popped up
--------U-16FFC1-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFC1h
BL = ???
ES:DI -> data structure (see #0540)
???
Return: AX = ???
Note: available only when popped up
SeeAlso: AX=FFC2h,AX=FFC3h
Format of PC Tools DESKTOP data structure:
Offset Size Description (Table 0540)
00h WORD ???
02h WORD ???
04h WORD ???
06h WORD ???
08h WORD ???
0Ah BYTE ???
0Bh BYTE ??? (zero/nonzero)
---v7.1---
0Ch WORD ???
0Eh BYTE ???
0Fh WORD ???
11h WORD ???
???
--------U-16FFC2-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFC2h
BL = ???
ES:DI -> data structure (see #0540)
???
Return: AH = ???
CX = ???
DH = ???
DL = ???
Note: available only when popped up
SeeAlso: AX=FFC1h,AX=FFC3h
--------U-16FFC3-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFC3h
BL = ???
ES:DI -> data structure (see #0540)
???
Return: AH = ???
CX = ???
DH = ???
DL = ???
Note: available only when popped up
SeeAlso: AX=FFC1h,AX=FFC2h
--------U-16FFC4-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
AX = FFC4h
Return: AL = ???
BX = segment of scratch space???
CX = segment of stored screen data (section covered by window???)
DX = segment of window parameters for ???
ES:BP -> ???
Note: available only when popped up in versions prior to 6.0
--------U-16FFC5-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK WHETHER DESKTOP LOADED RESIDENT
AX = FFC5h
Return: BL = Desktop state
00h if nonresident
nonzero if loaded resident
Note: available only when popped up; should call AX=FFEFh first to ensure
that DESKTOP is active
SeeAlso: AX=FFEFh,AX=FFF3h
--------U-16FFC6-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
AX = FFC6h
BL = new value for ???
--------U-16FFC7-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - REMOVE WINDOW
AX = FFC7h
???
Return: ???
--------U-16FFC8-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
AX = FFC8h
Return: DS:SI -> ???
Note: valid only while popped up
--------U-16FFC9-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY DATA TO CLIPBOARD
AX = FFC9h
DS:SI -> characters to store in clipboard
CX = size in bytes
Return: CF set on error
Notes: available only when popped up
while copying, bytes of 00h and 0Ah are skipped
--------U-16FFCA-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
AX = FFCAh
DX = ???
Return: AX destroyed
Note: available only when popped up
--------U-16FFCB-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SELECT WINDOW PARAMETERS???
AX = FFCBh
DX = window specifier???
Return: AX destroyed
Note: available only when popped up
SeeAlso: AX=FFB5h
--------U-16FFCC-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY ASCIZ STRING CENTERED IN WINDOW
AX = FFCCh
DS:SI -> ASCIZ string
Return: AX = ???
CX = ???
ES:DI -> address past last character displayed (v5.1/5.5)
-> ??? on menu bar (v6.0)
--------U-16FFCD-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFCDh
DS:DX -> ???
Return: ???
Note: available only when popped up
--------U-16FFCE-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ??? DELAYS
AX = FFCEh
CX = ???
Return: nothing???
--------U-16FFCF-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLOSE PRINTER/PRINT FILE
AX = FFCFh
Note: available only when popped up
--------U-16FFD0-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO PRINT???
AX = FFD0h
???
Return: ???
Note: available only when popped up
--------U-16FFD1-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY PRINT OPTIONS MENU
AX = FFD1h
Return: BX = number of copies
DX = destination
00h cancel
01h LPT1
02h LPT2
03h LPT3
04h COM1
05h COM2
06h disk file
Note: available only when popped up
--------U-16FFD2-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFD2h
BX = ???
Return: BL = ???
Note: available only when popped up
--------U-16FFD3-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFD3h
DS:SI -> 92-byte data record for ???
Return: ???
SeeAlso: AX=FED3h
--------U-16FFD4BH3C-------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - CREATE/OPEN/DELETE FILE
AX = FFD4h
BH = 3Ch create file (with no attributes)
3Dh open file
41h delete file
BL = access mode
00h read only
01h write only
02h read/write
DS:SI -> ASCIZ filename
Return: BX = file handle
0000h on error
Note: operation is attempted in (in order) the directory from which the
desktop was started/run???, the directory specified with the
filename, X:\PCTOOLS\, and X:\
--------U-16FFD5-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFD5h
???
Return: ???
Note: available only when popped up
--------U-16FFD6-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFD6h
BX = ???
CX = ???
DX = offset in ???
???
Return: ???
Note: available only when popped up
--------U-16FFD7-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFD7h
???
Return: BL = ???
Note: available only when popped up
--------U-16FFD8-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SAFE CREATE FILE
AX = FFD8h
DS:BX -> ASCIZ filename
Return: BX = file handle
0000h on error
Note: pops up confirmation menu if file already exists
only available when popped up???
--------U-16FFD9-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
AX = FFD9h
Return: AX = ???
Note: available only when popped up
--------U-16FFDA-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET NAME OF LAST FILE OPENED
AX = FFDAh
DS:SI -> ??? (v5.1/5.5 only)
Return: DS:SI -> filename
--------U-16FFDB-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
AX = FFDBh
BL = ???
Note: available only when popped up
--------U-16FFDC-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - UNHOOK
AX = FFDCh
Return: interrupt vectors 09h, 10h (v6.0+), 16h, 1Ch, and 21h restored to
original values
Index: uninstall;PC Tools DESKTOP
--------U-16FFDDBX0000-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - INSTALLATION CHECK
AX = FFDDh
BX = 0000h
Return: CX = 5555h
DX = 5555h if PCShell installed in resident mode
--------U-16FFDDBX0001-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP
AX = FFDDh
BX = 0001h
Return: CF clear if request successful (PCShell will pop up)
CF set on error
SeeAlso: AX=FFDDh/BX=0003h
--------U-16FFDDBX0002-----------------------
INT 16 U - PC Tools v5.1-5.5 PCShell API - GET ???
AX = FFDDh
BX = 0002h
Return: AL =
00h ???
01h ???
Note: PCShell v6.0+ displays the error message "Incorrect PCRUN version",
awaits a keystroke, and aborts the current process
--------U-16FFDDBX0003-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP
AX = FFDDh
BX = 0003h
SeeAlso: AX=FFDDh/BX=0001h
--------U-16FFDDBX0004-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - GET ???
AX = FFDDh
BX = 0004h
Return: CF clear if successful
DS:SI -> ???
--------U-16FFDDBX0005-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - ???
AX = FFDDh
BX = 0005h
???
Return: ???
Note: resets various variables if certain conditions are met
--------U-16FFDDBX0006-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - ???
AX = FFDDh
BX = 0006h
???
Return: ???
Note: resets various variables if certain conditions are met
--------U-16FFDDBX0007-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - SET ??? FLAG
AX = FFDDh
BX = 0007h
Return: CF clear if successful
SeeAlso: AX=FFDDh/BX=0008h
--------U-16FFDDBX0008-----------------------
INT 16 U - PC Tools v5.1+ PCShell API - CLEAR ??? FLAG
AX = FFDDh
BX = 0008h
Return: CF undefined
SeeAlso: AX=FFDDh/BX=0007h
--------U-16FFDDBX0009-----------------------
INT 16 U - PC Tools v6.0+ PCShell API - GET PCRUN PARAMETERS
AX = FFDDh
BX = 0009h
Return: CF clear if successful
DS:SI -> list of pointers (see #0541)
Format of PC Tools PCShell returned pointer list:
Offset Size Description (Table 0541)
00h WORD offset of WORD containing ???
02h WORD offset of name of program to execute
04h WORD offset of 80-byte buffer for ???
06h WORD offset of buffer for ??? (length in WORD preceding buffer)
08h WORD offset of buffer for ??? (length in WORD preceding buffer)
--------U-16FFDDBX000A-----------------------
INT 16 U - PC Tools v6.0+ PCRUN API - INSTALLATION CHECK
AX = FFDDh
BX = 000Ah
Return: CX = 5555h if running
DX = 5555h
Note: also sets a flag
--------U-16FFDDBX000B-----------------------
INT 16 U - PC Tools v6.0+ PCRUN API - ???
AX = FFDDh
BX = 000Bh
???
Return: CX = 5555h if PCRUN active
DX = 5555h
Note: also clears flag set by AX=FFDDh/BX=000Ah
--------U-16FFDE-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY POPUP MENU
AX = FFDEh
DS:DX -> menu description (must be on a paragraph boundary)
Return: AX = ???
AL seems to be the number of the selected button
Note: available only when popped up
SeeAlso: AX=FFEEh
--------U-16FFDF-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFDFh
???
Return: ???
--------U-16FFE0-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFE0h
CX = ???
DX = ???
Note: available only when popped up
--------U-16FFE1-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - BEEP
AX = FFE1h
--------U-16FFE2-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFE2h
DX = ???
Return: ???
Note: available only when popped up
--------U-16FFE3-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - PRINT CHARACTER
AX = FFE3h
BL = character to print to currently open printer or print file
Return: CF set on error
Note: available only when popped up
SeeAlso: INT 17/AH=00h
--------U-16FFE4-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFE4h
DX = segment of ???
Return: ???
Note: available only when popped up
--------U-16FFE5-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - POP UP FILE SELECTION MENU
AX = FFE5h
DS:SI -> ASCIZ wildcard filespec followed by ASCIZ menu title
DX = segment of window parameters???
Return: AX = DOS file handle for file
DS:DX -> filename???
FFFFh if function cancelled by user
Note: available only when popped up
SeeAlso: AX=FFDAh
--------U-16FFE6-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK FOR AND GET KEYSTROKE
AX = FFE6h
Return: AX = 0000h if no key available
else BIOS keycode
Notes: available only when popped up
invokes INT 28 idle interrupt before checking for key
--------U-16FFE7-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFE7h
BX = segment of ???
Return: ???
Note: available only when popped up
--------U-16FFE8-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY NUMBER
AX = FFE8h
CX = number
DH = attribute
DS:SI -> destination for ASCII number
Return: DS:SI buffer filled in with alternating characters and attributes
--------U-16FFE9-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET FILE LIST???
AX = FFE9h
Return: BX = segment of file/directory list (14 bytes per file, NUL-padded)
Note: available only when popped up
--------U-16FFEA-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY COUNTED STRING
AX = FFEAh
DS:SI -> counted string (count byte followed by string)
Return: ???
Note: available only when popped up
--------U-16FFEB-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFEBh
???
Return: ???
--------U-16FFEC-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET KEY
AX = FFECh
DS:SI -> FAR routine to ???
BX = ???
???
Return: AX = keystroke
FFFFh if F10 pressed to go to menu
Notes: available only when popped up
invokes INT 28 while waiting for keystroke
F10 is hotkey to Desktop menu
Index: hotkeys;PC Tools DESKTOP
--------U-16FFED-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
AX = FFEDh
Return: AX = ???
Note: available only when popped up
--------U-16FFEE-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE PULLDOWN MENUS
AX = FFEEh
DS:SI -> pulldown menu system description (see #0542)
Return: AX destroyed
Notes: available only when popped up
if the accessory does not need any menu items of its own, it should
call AX=FFFAh instead
SeeAlso: AX=FFF7h,AX=FFFAh
Format of PC Tools DESKTOP pulldown menu system description:
Offset Size Description (Table 0542)
00h WORD offset of menu bar contents (counted string)
02h WORD number of items on menu bar
04h 10 BYTEs scan codes for hotkeying to each of up to ten menu items
0Eh 10 BYTEs which character to highlight in each menu item (01h=first)
18h WORD offset of first menu definition (see #0543)
1Ah WORD offset of second menu definition
...
Format of PC Tools DESKTOP menu definition:
Offset Size Description (Table 0543)
00h WORD offset of menu contents (see #0544)
02h WORD number of entries in menu
04h for each entry:
Offset Size Description
00h BYTE scancode of Alt-key to invoke entry
01h BYTE character to highlight (01h=first, etc)
02h WORD offset of FAR routine to handle selection
Format of PC Tools DESKTOP menu contents:
Offset Size Description (Table 0544)
00h BYTE number of lines in menu
01h BYTE width of menu
02h N BYTEs counted strings, one for each line in menu
--------U-16FFEFCX0000-----------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - INSTALLATION CHECK
AX = FFEFh
CX = 0000h
Return: CX = ABCDh if PC Tools DESKTOP.EXE installed
BX = segment of resident portion
AX = ??? (v5.1/5.5 only)
SeeAlso: AX=FEEFh,AX=FFC5h,AX=FFF3h
--------U-16FFF0-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
AX = FFF0h
DX = ???
Return: AX destroyed
Note: available only when popped up
--------U-16FFF1BX0000-----------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ALTERNATE INSTALLATION CHECK
AX = FFF1h
BX = 0000h leave ??? flag as is
nonzero set ??? flag
Return: CX = 5555h if installed
DX = 5555h
--------U-16FFF2-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY HELP LINE
AX = FFF2h
DS:SI -> ASCIZ function key label string (each label preceded by '[')
or help text
Return: AX destroyed
Notes: available only when popped up
if the specified string does not start with '[', it is displayed
centered on the bottom line, else the function key labels are shown
--------U-16FFF3-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO UNLOAD RESIDENT DESKTOP
AX = FFF3h
Note: releases any EMS being used; restores video mode, page, and cursor
shape; and restores interrupt vectors
SeeAlso: AX=FFC5h,AX=FFEFh
Index: uninstall;PC Tools DESKTOP
--------U-16FFF4-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
AX = FFF4h
???
Return: ???
Note: available only when popped up
SeeAlso: AX=FFF6h
--------U-16FFF5-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET SCREEN ATTRIBUTE ARRAY
AX = FFF5h
Return: ES:BX -> screen attributes data structure (see #0545)
AL = ??? (v6.0+)
Format of PC Tools DESKTOP attribute data structure:
Offset Size Description (Table 0545)
-1 BYTE attribute for desktop background
00h BYTE attribute for normal characters on desktop menu
01h BYTE attribute for highlighted characters on desktop menu
02h 5 BYTEs ???
07h BYTE attribute for dialog boxes
08h 15 BYTEs ???
17h BYTE attribute for message boxes
--------U-16FFF6-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - INVOKE NOTEPAD EDITOR
AX = FFF6h
DS = segment of editor buffer structure (see #0546)
BX = ???
DX = segment of window parameters structure (see #0539)
Return: ???
Note: available only when popped up
SeeAlso: AX=FFF4h
Format of PC Tools DESKTOP editor buffer structure:
Offset Size Description (Table 0546)
00h WORD offset of current cursor position in buffer segment
02h 2 BYTEs ???
04h WORD offset of beginning of file data in buffer segment
06h 10 BYTEs ???
10h N BYTEs ASCIZ name of file being edited
--------U-16FFF7-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS MENU BAR ENTRY???
AX = FFF7h
DS:SI -> ???
???
Return: ???
Notes: available only when popped up
performs input processing on the menu bar set up with AX=FFEEh
SeeAlso: AX=FFEEh,AX=FFFBh
--------U-16FFF8-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DRAW EMPTY WINDOW
AX = FFF8h
DS:0000h -> window parameters structure (see #0539)
DS:BX -> DWORD to store address of ??? on screen
Return: ???
--------U-16FFF9-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE SCREEN REFRESH ROUTINE
AX = FFF9h
ES:BX -> FAR routine to redisplay the utility's window
Note: available only when popped up
--------U-16FFFA-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE STANDARD PULLDOWN MENUS
AX = FFFAh
Notes: available only when popped up
adds the "Window" option to the "Desktop" option which is the only one
available when no accessories are active. Unlike AX=FFEEh, no
additional menu items are added between "Desktop" and "Window"
SeeAlso: AX=FFEEh,AX=FFFBh
--------U-16FFFB-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS STANDARD MENU BAR
AX = FFFBh
Return: ???
Notes: available only when popped up
performs input processing on the standard menu bar set up with AX=FFFAh
SeeAlso: AX=FFF7h
--------U-16FFFC-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET HOTKEYS AND KEYBOARD VECTOR
AX = FFFCh
Return: ES:BX -> hotkey table (see #0547)
DS:DX = original INT 09 vector
Format of PC Tools DESKTOP hotkey table:
Offset Size Description (Table 0547)
00h 2 BYTEs scancode/shift state for desktop hotkey
02h 2 BYTEs scancode/shift state for clipboard paste key
04h 2 BYTEs scancode/shift state for clipboard copy key
06h 2 BYTEs scancode/shift state for screen autodial key
--------U-16FFFD-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY ???
AX = FFFDh
Return: AX destroyed
Note: copies 4000 bytes from ??? to ??? under certain circumstances
SeeAlso: AX=FF91h,AX=FF92h
--------M-16FFFE-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - SHOW MOUSE CURSOR
AX = FFFEh
SeeAlso: AX=FFFFh,INT 33/AX=0001h
--------M-16FFFF-----------------------------
INT 16 U - PC Tools v5.1-8.0 DESKTOP - HIDE MOUSE CURSOR
AX = FFFFh
SeeAlso: AX=FFFEh,INT 33/AX=0002h
--------P-17----DX0ABC-----------------------
INT 17 - PRINTER - LPTx v5.x INSTALLATION CHECK
DX = 0ABCh
Return: AX = AAAAh
DX = BAAAh
ES = code segment of resident portion
--------P-17----DX0B90-----------------------
INT 17 - PRINTER - LPTx v6.x INSTALLATION CHECK
DX = 0B90h
Return: DX = ABBBh
ES = code segment of resident portion
--------P-17----DX0B91-----------------------
INT 17 - PRINTER - LPTx v7.x INSTALLATION CHECK
DX = 0B91h
Return: DX = ABCBh
ES = code segment of resident portion
--------P-17----DX0F5F-----------------------
INT 17 - PRINTER - LPTx v4.x INSTALLATION CHECK
DX = 0F5Fh
Return: AX = AAAAh
DX = F555h
ES = code segment of resident portion
--------B-1700-------------------------------
INT 17 - PRINTER - WRITE CHARACTER
AH = 00h
AL = character to write
DX = printer number (00h-02h)
Return: AH = printer status (see #0548)
SeeAlso: AH=02h,AH=84h"AX",AX=6F02h,AH=F1h,INT 16/AX=FFE3h,INT 1A/AH=11h"NEC"
SeeAlso: INT 4B/AH=00h
Bitfields for printer status:
Bit(s) Description (Table 0548)
7 not busy
6 acknowledge
5 out of paper
4 selected
3 I/O error
2-1 unused
0 timeout
Note: for Tandy 2000, bit 7 indicates printer-busy when set rather than clear
--------B-1701-------------------------------
INT 17 - PRINTER - INITIALIZE PORT
AH = 01h
DX = printer number (00h-02h)
Return: AH = printer status (see #0548)
Note: some printers report that they are ready immediately after
initialization when they actually are not; a more reliable result may
be obtained by calling AH=02h after a brief delay
SeeAlso: AH=02h,AH=FFh"PC-MOS",INT 1A/AH=10h"NEC",INT 4B/AH=01h
--------B-1702-------------------------------
INT 17 - PRINTER - GET STATUS
AH = 02h
DX = printer number (00h-02h)
Return: AH = printer status (see #0548)
Note: PRINTFIX from MS-DOS 5.0 hooks this function and always returns AH=90h
SeeAlso: AH=01h,AH=F2h,INT 1A/AH=12h"NEC",INT 4B/AH=02h
--------P-1702--DX0000-----------------------
INT 17 - INSET - INSTALLATION CHECK
AH = 02h
DX = 0000h
CX = 07C3h (1987d)
Return: CX = 07C2h (1986d) if installed
Program: INSET is a text/graphics integration program
--------b-170200BX5050-----------------------
INT 17 - Enhanced Parallel Port (EPP) BIOS - INSTALLATION CHECK
AX = 0200h
BX = 5050h ('PP')
CH = 45h ('E')
DX = printer port number (00h-02h)
Return: AH = status
00h if installed and port is an enhanced parallel port
CX:AL = installed BIOS type
5050h:45h ('PPE') if EPP v3.0+ BIOS installed
4550h:50h ('EPP') if EPP v1.0 BIOS installed
---EPP 1.0, 3.0---
DX:BX -> far entry point to Advanced BIOS (see #0549)
---EPP Revision 7---
DX = EPP I/O base address
ES:BX -> far entry point to EPP BIOS (see #0549,#0550)
03h if installed but specified port not supported
CF set
Program: The Enhanced Parallel Port BIOS provides support for parallel
port peripherals using the enhanced modes of the IEEE 1284.
SeeAlso: AH=E0h,MEM 0040h:0008h,MEM 0040h:00DCh
(Table 0549)
Call EPP BIOS entry point with:
DL = port number (v1.0,v3.0)
DX = (Revision 7) EPP port I/O base address
AH = function
00h Query Configuration
Return: AH = 00h if successful
AL = IRQ number used by port or FFh if no IRQ
BH = EPP BIOS revision (major in high nybble,
minor in low nybble)
BL = I/O capabilities (see #0552)
ES:DI -> ASCIZ driver information/version text
---v1.0,v3.0---
CX = I/O port base address for parallel port
---Revision 7---
CL = EPP chipset code (see #0553)
CH = hardware manufacturer's product code
01h Set Mode
AL = mode bits (see #0554)
Return: AX,BX destroyed
02h Get Mode
Return: AL = mode bits (see also #0554)
bit 7: EPP port interrupts enabled
AH = 00h
CF clear
BX destroyed
03h Interrupt Control
AL = subfunction
00h enable parallel port interrupts
01h disable parallel port interrupts
Return: AH = status (00h,05h,06h) (see also #0551)
04h EPP Reset
Return: AH = 00h if successful
AL destroyed
05h perform Address-Write/Device-Select I/O cycle
AL = device address
Return: AH = status
AL destroyed
06h perform Address-Read I/O cycle
Return: AL = returned address/device data
AH = status
07h write byte
AL = data byte to write
Return: AH = status
08h output block of data
DS:SI -> block of data to be sent to parallel port
CX = number of bytes to output
Return: AH = status (see #0551)
CX = number of unsent bytes
09h read byte of data
Return: AH = status (see #0551)
AL = byte read from parallel port
0Ah read block of data
ES:DI -> buffer for received data
CX = number of bytes to read from paralle port
Return: AH = status (see #0551)
ES:DI buffer filled if successful
CX = number of bytes not transferred
0Bh Address/Byte-Read
AL = device address
Return: AH = status (see #0551)
AL = byte read if successful
0Ch Address/Byte-Write
AL = device address
DH = data byte (v1.0,v3.0)
CL = data byte (Revision 7)
Return: AH = status (see #0551)
0Dh Address/Block-Read
AL = device address
ES:DI -> buffer for received data
CX = number of bytes to read
Return: AH = status (see #0551)
CX = number of bytes NOT transferred
0Eh Address/Block-Write
AL = device address
ES:DI -> data to be sent (v1.0,v3.0)
DS:SI -> data to be send (Revision 7)
CX = number of bytes to write
Return: AH = status (see #0551)
CX = number of bytes NOT transferred
0Fh Lock Port
AL = multiplexor port number
bits 7-4: daisy chain port number (1-8)
bits 3-0: mux device port number (1-8, 0 if no mux)
Return: AH = status (00h,03h,05h) (see #0551)
10h Unlock Port
AL = multiplexor port number
bits 7-4: daisy chain port number (1-8)
bits 3-0: mux device port number (1-8, 0 if no mux)
Return: AH = status (00h,03h,05h) (see #0551)
11h Device Interrupt
BL = multiplexor port number
00h if no multiplexor, else mux device port (01h-08h)
AL = subfunction
00h disable device interrupts
01h enable device interrupt
ES:DI -> interrupt event handler
Return: AH = status (00h,03h,05h,06h) (see #0551)
Note: AMI BIOS v1.00.12.AX1T ignores the multiplexor port
number; it also always sets INT 0F to the address
specified in ES:DI
12h Real-Time Mode
AL = subfunction
00h check whether any real-time devices present
01h add (advertise) real-time device
02h remove real-time device
Return: AH = status (00h,05h,06h,07h) (see #0551)
AL = real-time devices present? (00h no, 01h yes)
Note: unlike all other functions, this one does not use DL/DX
Return: AH = status (see #0551)
CF clear if successful
CF set on error
BX destroyed
SeeAlso: #0550
(Table 0550)
Call EPP BIOS (Revision 7) entry point multiplexor functions with:
DX = EPP port base I/O address
AH = function
40h Query Mux
Return: AH = status (see #0551)
AL = currently-selected port
CH = status flags
bit 0: channel locked
bit 1: interrupt pending
BH destroyed
Note: the PhoenixBIOS v4.0 documentation lists BL as the
currently-selected port and AL as the status flags
41h Query Device Port
AL = EPP multiplex device port (1-8)
Return: AH = status (see #0551)
CH = status flags (see #0555)
BX = EPP product/device ID (0000h if undefined)
Note: the PhoenixBIOS v4.0 documentation lists AL as the
status flags and CX as the device ID
42h Set Product ID
AL = EPP multiplex device port (1-8)
CX = EPP product ID
Return: AH = status (see #0551)
BX destroyed
50h Query Daisy Chain
AL = EPP multiplexor device port (1-8)
Return: AH = status (see #0551)
CH = status flags
bit 0: channel locked
bit 1: interrupt pending
BL = currently-selected device
BH = EPP daisy chain revision (high nybble = major)
CL = daisy-chain depth (00h if no daisy chain)
ES:DI -> ASCIZ driver vendor identification string
Note: the PhoenixBIOS v4.0 documentation lists AH=51h as
"Query Daisy Chain" and BL as the multiplexor port;
it also lists AL as status flags on return
51h Rescan Daisy Chain (dynamically reassign port numbers)
AL = EPP multiplexor device port (1-8)
Return: AH = status (see #0551)
BX destroyed
Note: the PhoenixBIOS v4.0 documentation lists AH=50h as
"Rescan Daisy Chain" and BL as the multiplexor port
Notes: these functions are only valid if a port multiplexor or daisy chain
is present
PhoenixBIOS 4.0 documents function 50h as "Rescan" and 51h as
"Query Daisy Chain"
SeeAlso: #0549,INT 2D/AL=DCh
(Table 0551)
Values for EPP BIOS function status:
00h successful
02h unsupported command/feature
03h unsupported parallel port
05h unsupported in current mode
06h invalid subfunction
07h already ???
20h multiplexor not present (AMI)
40h multiplexor not present
41h multiplexor currently locked
80h I/O timeout
FFh invalid/unsupported function
SeeAlso: #0549,#0550
Bitfields for EPP (v3.0, Revision 7) I/O capabilities:
Bit(s) Description (Table 0552)
0 multiplexor present
1 PS/2 bi-directional capable
2 daisy chain present
3 ECP capable
4 EPP software emulation supported
5 EPP capable
6 fast Centronics supported
7 standard EPP I/O map
SeeAlso: #0549
(Table 0553)
Values for EPP (Revision 7) chipset code:
00h Intel SL
01h FarPoint Communications
02h SMC
03h Chips&Technologies
04h Western Digital
05h National Semiconductor
SeeAlso: #0549
Bitfields for EPP BIOS mode bits:
Bit(s) Description (Table 0554)
0 set compatibility mode
1 set bi-directional mode
2 set EPP mode
---Revision 7,v3.0---
3 set ECP mode
4 set EPP software emulation
5 set fast Centronics mode
6-7 reserved (0)
SeeAlso: #0549,#M052
Bitfields for EPP BIOS multiplex status flags:
Bit(s) Description (Table 0555)
0 port is selected
1 port is locked
2 interrupts are enabled
3 interrupt pending
SeeAlso: #0550
--------P-1703-------------------------------
INT 17 U - Emulaser ELTSR - INSTALL INTERRUPT HANDLERS
AH = 03h
Return: BX = ???
CX = ???
Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
Vertisoft Systems, Inc.
SeeAlso: AH=04h"Emulaser",AH=0Eh,INT 1A/AH=E5h
----------1703-------------------------------
INT 17 - IBM SurePath BIOS - Officially "Private" Function
AH = 03h
SeeAlso: AH=04h"IBM",AH=05h"IBM"
--------c-1703-------------------------------
INT 17 - PC-MOS/386 v5.01 - PRINT SPOOLER - PRINT STRING
AH = 03h
DX = printer port number
CX = number of characters to print
DS:SI -> string
Return: AH = printer status (see #0548)
CX = number of characters actually printed
Desc: send an entire string of chars to the print spooler with a single call
Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
operating system by The Software Link, Inc.
SeeAlso: AH=00h,AH=01h,AH=02h,AH=FFh"PC-MOS"
--------c-1703--BX5A00-----------------------
INT 17 - DMP Print Spooler v2.03 - INSTALLATION CHECK
AH = 03h
BX = 5A00h
Return: AX = 5ACBh
DI = 0000h
ES = DMP code segment (also data segment)
Program: DMP is a Printer driver/spooler, by DMP (USA), available on the
PCTODAY disk, volume 10, March 1991
--------N-170300-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "socket"
AX = 0300h
CX = type of socket from socket( domain, type, protocol )
DX = local identifier of socket (0 - 31)
Return: AX = 0000h success
CX = segment of 4500 byte transfer buffer
DX = offset of 4500 byte transfer buffer
= FFFFH failure
CX = error code
ENFILE 23
Program: DOSISODE is the ISO developers environment which has been ported to
DOS and will run with the Waterloo TCP turned into a resident TSR.
Currently it allows a maximum of 6 open sockets.
Note: this function will initialize the interface the first time it is
called
SeeAlso: AX=0400h"DOSISODE",AX=0600h"DOSISODE",AX=0800h"DOSISODE"
SeeAlso: AX=0A00h"DOSISODE",AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
--------P-1704-------------------------------
INT 17 U - Emulaser ELTSR - BEGIN CAPTURING OUTPUT
AH = 04h
Note: has no effect unless ELTSR is deactivated (see AX=0503h)
SeeAlso: AH=03h"Emulaser",AX=0503h,INT 1A/AH=E5h
----------1704-------------------------------
INT 17 - IBM SurePath BIOS - Officially "Private" Function
AH = 04h
SeeAlso: AH=03h"IBM",AH=05h"IBM"
--------N-170400-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "bind"
AX = 0400h
Note: this function just returns
SeeAlso: AX=0300h"DOSISODE",AX=0500h"DOSISODE",AX=0C00h"DOSISODE"
----------1705-------------------------------
INT 17 - IBM SurePath BIOS - Officially "Private" Function
AH = 05h
SeeAlso: AH=03h"IBM",AH=04h"IBM"
--------P-170500-----------------------------
INT 17 U - Emulaser ELTSR - ???
AX = 0500h
???
Return: AX = unload status (0001h safe to unload, 0002h not safe)
BX = ???
CX = PSP segment of ELTSR
DX = activity flag (0000h disabled, 0001h capturing, 0002h ???printing)
SI = ???
DI = ???
SeeAlso: AH=04h,INT 1A/AH=E5h
--------N-170500-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "connect"
AX = 0500h
SeeAlso: AX=0400h"DOSISODE",AX=0700h"DOSISODE",AX=0C00h"DOSISODE"
--------P-170501-----------------------------
INT 17 U - Emulaser ELTSR - UNHOOK INTERRUPTS
AX = 0501h
Return: (see AX=0500h)
Note: restores interrupt vectors without checking whether they have been
hooked by later programs; should only be called if ELTSR reports
that it is safe to unload
SeeAlso: AH=04h,AX=0500h,AX=0503h,INT 1A/AH=E5h
Index: uninstall;Emulaser ELTSR
--------P-170502-----------------------------
INT 17 U - Emulaser ELTSR - SET ???
AX = 0502h
BL = Emulaser port (31h = LPT1, 32h = LPT2, 33h = LPT3)
CL = ???
DL = ???
Return: (see AX=0500h)
SeeAlso: AH=04h,AX=0500h,INT 1A/AH=E5h
--------P-170503-----------------------------
INT 17 U - Emulaser ELTSR - DEACTIVATE???
AX = 0503h
Return: (see AX=0500h)
SeeAlso: AH=04h,AX=0500h,AX=0501h,INT 1A/AH=E5h
--------P-1706-------------------------------
INT 17 U - Emulaser ELTSR - ???
AH = 06h
???
Return: ???
SeeAlso: AX=0500h,AX=0503h,AH=07h"ELTSR",INT 1A/AH=E5h
--------N-170600-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "listen"
AX = 0600h
Note: this function just returns
SeeAlso: AX=0300h"DOSISODE",AX=0700h"DOSISODE",AX=0C00h"DOSISODE"
SeeAlso: AX=0E00h"DOSISODE"
--------P-1707-------------------------------
INT 17 U - Emulaser ELTSR - OPEN CAPTURE FILE
AH = 07h
ES:DX -> ASCIZ filename to be opened
Return: ???
Note: new output will be appended to the specified file
SeeAlso: AH=08h,INT 1A/AH=E5h
--------N-170700-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "accept"
AX = 0700h
Note: this function just returns
SeeAlso: AX=0600h"DOSISODE",AX=0800h"DOSISODE",AX=0C00h"DOSISODE"
--------P-1708-------------------------------
INT 17 U - Emulaser ELTSR - CLOSE CAPTURE FILE
AH = 08h
???
Return: ???
Desc: close the file previously opened by function 07h
SeeAlso: AH=07h,INT 1A/AH=E5h
--------N-170800-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "recvfrom"
AX = 0800h
SeeAlso: AX=0500h"DOSISODE",AX=0900h"DOSISODE",AX=0A00h"DOSISODE"
--------P-1709-------------------------------
INT 17 U - Emulaser ELTSR - PRINT CAPTURE FILE???
AH = 09h
BX = ???
CX = ???
DX = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
Return: AX = status
00h successful
FFh failed
Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
Vertisoft Systems, Inc.
Note: this function calls through to INT 1A/AX=E401h, and thus requires
that either ELSPL or Disk Spool II be installed
SeeAlso: AH=0Ah,INT 1A/AX=E401h,INT 1A/AH=E5h
--------N-170900-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "sendto"
AX = 0900h
SeeAlso: AX=0700h"DOSISODE",AX=0800h"DOSISODE",AX=0A00h"DOSISODE"
--------P-170A-------------------------------
INT 17 U - Emulaser ELTSR - SET ??? FILENAME
AH = 0Ah
ES:BX -> ??? buffer
CX = length of ??? buffer
Return: ???
Note: copies the specified name into the buffer passed to ELSPL as the
filename by AH=09h
SeeAlso: AH=09h,INT 1A/AH=E5h
--------N-170A00-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "select"
AX = 0A00h
SeeAlso: AX=0800h"DOSISODE",AX=0B00h"DOSISODE",AX=0E00h"DOSISODE"
--------P-170B-------------------------------
INT 17 U - Emulaser ELTSR - GET ???
AH = 0Bh
Return: AX:BX -> ???
SeeAlso: AH=0Ah,INT 1A/AH=E5h
----------170B-------------------------------
INT 17 - IBM SurePath BIOS - Officially "Private" Function
AH = 0Bh
SeeAlso: AH=03h"IBM",AH=0Ch"IBM"
--------N-170B00-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "ioctl"
AX = 0B00h
DX = local identifier of socket (0 - 31)
Note: this function sets the socket into non_block mode
SeeAlso: AX=0A00h"DOSISODE",AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
--------P-170C-------------------------------
INT 17 U - Emulaser ELTSR - SET ??? FLAG
AH = 0Ch
???
Return: ???
SeeAlso: AH=0Bh,INT 1A/AH=E5h
----------170C-------------------------------
INT 17 - IBM SurePath BIOS - Officially "Private" Function
AH = 0Ch
SeeAlso: AH=0Bh"IBM",AH=0Dh"IBM"
--------N-170C00-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "close"
AX = 0C00h
SeeAlso: AX=0300h"DOSISODE",AX=0500h"DOSISODE",AX=0D00h"DOSISODE"
--------P-170D-------------------------------
INT 17 U - Emulaser ELTSR - GET TRUE ScrlLk STATE
AH = 0Dh
Return: AX = state (0000h off, 0010h on)
Desc: determine the actual state of ScrlLk even when Emulaser is controlling
the ScrlLk light as its activity indicator
SeeAlso: AH=0Ch,INT 16/AH=02h,INT 1A/AH=E5h
----------170D-------------------------------
INT 17 - IBM SurePath BIOS - Officially "Private" Function
AH = 0Dh
SeeAlso: AH=0Ch"IBM",AH=0Eh"IBM"
--------N-170D00-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - "shutdown" - SHUTDOWN INTERFACE
AX = 0D00h
Note: this function is used to shutdown the interface
SeeAlso: AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
--------P-170E-------------------------------
INT 17 U - Emulaser ELTSR - BACKGROUND PROCESSING
AH = 0Eh
Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
Vertisoft Systems, Inc.
Note: this function is called by ELTSR on every INT 08 to allow data to be
processed in the background, but may also be called by applications
to give Emulaser additional CPU time
SeeAlso: AH=0Dh,INT 1A/AH=E5h
----------170E-------------------------------
INT 17 - IBM SurePath BIOS - Officially "Private" Function
AH = 0Eh
SeeAlso: AH=03h"IBM",AH=0Dh"IBM",AH=80h"IBM"
--------N-170E00-----------------------------
INT 17 - DOSISODE to WATTCP TSR Interface - INSTALLATION CHECK
AX = 0E00h
Return: CX = 1234h if installed
Program: DOSISODE is the ISO developers environment which has been ported to
DOS and will run with the Waterloo TCP turned into a resident TSR.
Currently it allows a maximum of 6 open sockets.
Note: this function is used to check if the interface is loaded
SeeAlso: AX=0300h"DOSISODE",AX=0A00h"DOSISODE"
--------P-172000-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - INSTALLATION CHECK
AX = 2000h
BL = printer number???
Return: AX = status (see #0556)
BX = driver version number (BH=major,BL=minor)
CH = ??? (00h)
CL = ???
DX = ??? (0100h)
Note: also enables the remaining printer driver functions (2001h-2007h)
SeeAlso: AX=2001h,AX=2002h,AX=2003h,AX=2004h,AX=2005h,AX=2006h,AX=2007h
(Table 0556)
Values for PC Paint function status:
0000h successful
0001h invalid printer???
0002h ???
0003h invalid subfunction
0005h driver disabled, must call function 00h first
0009h unknown printer error
000Bh printer not selected
000Ch printer out of paper
000Eh error while writing to serial printer
000Fh ???
0010h invalid function number
0011h value out of range
--------P-172001-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - SET ??? FLAG
AX = 2001h
BL = printer number???
Return: AX = status (see #0556)
--------P-172002-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET INFORMATION
AX = 2002h
BL = printer number???
CL = desired information
00h printer type
Return: ES:DI -> ASCIZ printer name
01h paper size
DX = size index
Return: ES:DI -> ASCIZ paper size description
02h ???
Return: BX = ???
03h printer information???
DX = ???
ES:BX -> buffer for ??? (min 134 bytes)
Return: AX = status (see #0556)
SeeAlso: AX=2000h,AX=2004h
--------P-172003-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ???
AX = 2003h
ES:BX -> ???
Return: AX = status (see #0556)
SeeAlso: AX=2000h,AX=2004h
--------P-172004-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET ???
AX = 2004h
BL = printer number???
Return: AX = status (see #0556)
ES:DI -> ???
SeeAlso: AX=2000h,AX=2003h
--------P-172005-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE PRINTER TO NEXT PAGE
AX = 2005h
BL = printer number???
Return: AX = status (see #0556)
Note: this function also clears the flag set by AX=2001h
SeeAlso: AX=2000h,AX=2001h,AX=2006h
--------P-172006-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE TO NEXT PAGE & SHUT DOWN
AX = 2006h
BL = printer number???
Return: AX = status (see #0556)
Note: this function also clears the flag set by AX=2001h and disables
functions other than AX=2000h
SeeAlso: AX=2000h,AX=2001h,AX=2005h
--------P-172007-----------------------------
INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - UNIMPLEMENTED
AX = 2007h
Return: AX unchanged
SeeAlso: AX=2000h
--------N-172400-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - ENABLE/DISABLE API FUNCTIONS
AX = 2400h
DL = new state
00h disabled
01h enabled
Return: DL = 24h if installed
DH = minor version number
CX = network address of this machine
AL = status (see #0557)
SeeAlso: AX=2403h,INT 16/AX=4500h
(Table 0557)
Values for NET.24 function status:
00h successful
01h timeout
02h header error
03h data error
04h busy
05h invalid parameters
--------N-172401-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, NO HANDSHAKE
AX = 2401h
BL = timeout in clock ticks
Return: AL = status (see #0557)
DX:BX -> receive buffer
SeeAlso: AX=2402h,AX=2404h,AX=2408h
--------N-172402-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT BLOCK, NO HANDSHAKE
AX = 2402h
transmit buffer filled (see AX=2403h)
Return: AL = status (see #0557)
SeeAlso: AX=2401h,AX=2403h,AX=2404h,AX=2409h
--------N-172403-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - GET STATUS AND TRANSMISSION BUFFER
AX = 2403h
Return: AL = status (see #0557)
CX = number of characters in receive ring buffer
DX:BX -> transmit buffer
SeeAlso: AX=2400h,AX=2402h
--------N-172404-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - SEND ACK BLOCK
AX = 2404h
BX = target address
Return: AL = status (see #0557)
SeeAlso: AX=2402h,AX=2405h
--------N-172405-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - SEND NAK BLOCK
AX = 2405h
BX = target address
Return: AL = status (see #0557)
SeeAlso: AX=2402h,AX=2404h
--------N-172406-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED RECEIVE
AX = 2406h
Return: AL = status (see #0557)
SeeAlso: AX=2407h,AX=240Ah
--------N-172407-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE CHARACTER FROM REMOTE
AX = 2407h
Return: AL = status (see also #0557)
06h end of data
DL = received character
SeeAlso: AX=2406h
--------N-172408-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, WITH HANDSHAKE
AX = 2408h
Return: AL = status (see also #0557)
06h end of data
CX = number of bytes in receive buffer
DX:SI -> receive buffer
SeeAlso: AX=2401h,AX=2405h,AX=2409h
--------N-172409-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT COMMAND, WITH HANDSHAKE
AX = 2409h
BX = target address
CX = number of data bytes
DL = command code to send
DS:SI -> data bytes for command
Return: AL = status (see also #0557)
03h no response
06h remote currently unable to perform command
SeeAlso: AX=2405h,AX=2408h
--------N-17240A-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED TRANSMIT
AX = 240Ah
Return: AL = status (see #0557)
SeeAlso: AX=2406h,AX=240Bh,AX=240Ch
--------N-17240B-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT SINGLE CHARACTER TO REMOTE
AX = 240Bh
DL = character to send
Return: AL = status (see also AX=2400h)
03h transmission error
06h write error
SeeAlso: AX=2407h,AX=240Ah,AX=240Ch
--------N-17240C-----------------------------
INT 17 - Shamrock Software NET.24 v3.11+ - END CHARACTER-ORIENTED TRANSMIT
AX = 240Ch
Return: AL = status (see also AX=2400h)
03h transmission error
06h remote breaks connection
SeeAlso: AX=240Ah,AX=240Bh
--------J-175000-----------------------------
INT 17 - AX (Japanese AT) PRINTER - SET PRINTER COUNTRY CODE
AX = 5000h
BX = country code
0001h USA (English), 0051h Japan
Return: AL = status
00h successful
01h bad country code
02h other error
SeeAlso: AX=5001h,AH=51h,INT 10/AX=5000h,INT 16/AX=5000h
--------J-175001-----------------------------
INT 17 - AX (Japanese AT) PRINTER - GET PRINTER COUNTRY CODE
AX = 5001h
Return: AL = status
00h successful
BX = country code
02h error
SeeAlso: AX=5000h,AH=51h,INT 10/AX=5001h,INT 16/AX=5001h
--------J-1751-------------------------------
INT 17 - AX (Japanese AT) PRINTER - JIS to Shift-JIS CONVERSION
AH = 51h
DX = 2-byte JIS code
Return: DX = shift-JIS value or 0000h on error
Note: one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
characters to Shift-JIS characters, and the other performs the
opposite conversion
SeeAlso: AX=5000h,AH=52h
--------J-1752-------------------------------
INT 17 - AX (Japanese AT) PRINTER - Shift-JIS to JIS CONVERSION
AH = 52h
DX = 2-byte shift-JIS code
Return: DX = JIS code or 0000h on error
Note: one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
characters to Shift-JIS characters, and the other performs the
opposite conversion
SeeAlso: AH=51h
--------V-1760-------------------------------
INT 17 - FLASHUP.COM - INSTALLATION CHECK
AH = 60h
Return: AL = 60h
DX = CS of resident code
Notes: FLASHUP.COM is part of Flash-Up Windows by The Software Bottling Co.
FLASHUP also hooks INT 10 and receives commands via INT 10/AH=09h,0Ah
consisting of an 80h followed by the actual command
SeeAlso: INT 10/AH=09h,INT 10/AH=0Ah
--------V-1761-------------------------------
INT 17 - SPEEDSCR.COM - INSTALLATION CHECK
AH = 61h
Return: AL = 61h
DX = CS of resident code
Note: SPEEDSCR.COM is by The Software Bottling Co.
--------P-1762-------------------------------
INT 17 U - T2PS v1.0 - UNINSTALL
AH = 62h
Return: nothing
SeeAlso: AH=63h,AH=64h,INT 05/AX=554Eh
--------P-1763-------------------------------
INT 17 U - T2PS v1.0 - SET PARAMETERS
AH = 63h
ES:SI -> settings (see #0558)
Program: T2PS is a shareware ASCII-to-PostScript converter by A.N.D.
Technologies
SeeAlso: AH=62h,AH=64h,INT 05/AX=4E57h
Format of T2PS settings:
Offset Size Description (Table 0558)
00h WORD LPT port number (0=LPT1, etc.)
02h WORD page heigh in points
04h WORD page width in points
06h WORD top margin in points
08h WORD bottom margin in points
0Ah WORD left margin in points
0Ch WORD right margin in points
0Eh WORD font size in points
10h WORD tab size
12h WORD timeout in clock ticks
--------P-1764-------------------------------
INT 17 U - T2PS v1.0 - GET PARAMETERS
AH = 64h
ES:SI -> buffer for settings (see #0558)
Return: ES:SI buffer filled
SeeAlso: AH=62h,AH=63h,INT 05/AX=5053h
--------b-176F00BX0000-----------------------
INT 17 - HP Vectra - EXTENDED BIOS - "F17_INQUIRE" - INSTALLATION CHECK
AX = 6F00h
BX = 0000h
Return: BX = 4850h ("HP") if HP Extended BIOS printer extensions available
SeeAlso: AX=6F02h,INT 14/AX=6F00h,INT 10/AX=6F00h,INT 14/AX=6F00h
SeeAlso: INT 33/AX=6F00h,INT 6F/AH=00h"HP Vectra"
--------b-176F02-----------------------------
INT 17 - HP Vectra - EXTENDED BIOS - "F17_PUT_BUFFER" - PRINT BUFFER
AX = 6F02h
CX = size of buffer in bytes
DX = port number (0-3)
ES:DI -> buffer containing characters to be printed
Return: AH = printer status (see #0548)
CX = number of bytes successfully printed
---on error (AH bit 0 set)---
ES:DI -> next byte to be sent
---if successful---
ES:DI unchanged
SeeAlso: AH=00h,AX=6F00h,INT 14/AX=6F02h
----------1780-------------------------------
INT 17 - IBM SurePath BIOS - Officially "Private" Function
AH = 80h
SeeAlso: AH=03h"IBM",AH=0Bh"IBM"
--------N-1781-------------------------------
INT 17 - Alloy NTNX, MW386 - CANCEL JOBS FOR CURRENT USER
AH = 81h
AL = 00h (NTNX compatibility mode)
CL = number of jobs to cancel
Return: AL = status (see #0559)
Note: this function cancels the last CL printouts for the current task
SeeAlso: AH=82h
(Table 0559)
Values for Alloy status:
00h success
01h-7Fh warning
80h general failure
81h host overloaded (NTNX only)
82h module busy (NTNX only)
83h host busy (NTNX only)
84h re-entry flag set
85h invalid request
86h invalid printer
87h invalid process ID
89h access denied
8Ah option not available for given port type
8Bh option not available for given task type
91h printer busy
C2h file not found
C3h path not found
C4h file access failure
--------N-1782-------------------------------
INT 17 - Alloy NTNX, MW386 - CANCEL ALL JOBS FOR CURRENT USER
AH = 82h
AL = 00h (NTNX compatibility mode)
Return: AL = status (see #0559)
SeeAlso: AH=81h
--------N-1783-------------------------------
INT 17 - Alloy NTNX, MW386 - SET NUMBER OF COPIES
AH = 83h
AL = mode
00h NTNX compatibility
CL = number of copies (max 99, default 1)
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
CX = number of copies
Return: AL = status (see #0559)
Note: in NTNX compatibility mode, this function only affects LPT1
--------N-1784-------------------------------
INT 17 - Alloy NTNX, MW386 - GENERATE PRINT BREAK
AH = 84h
AL = mode
00h NTNX compatibility
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
Note: closes spool file and tells spooler to queue the print job (LPT1 only
under MW386 in NTNX compatibility mode)
--------J-1784-------------------------------
INT 17 - AX (Japanese AT) PRINTER - OUTPUT CHARACTER WITHOUT CONVERSION
AH = 84h
AL = character
DX = printer number
Return: AH = printer status (see #0548)
SeeAlso: AH=00h,AH=85h
--------J-1785-------------------------------
INT 17 - AX (Japanese AT) PRINTER - ENABLE/DISABLE CHARACTER CONVERSION
AH = 85h
AL = new state (00h enabled, 01h disabled)
SeeAlso: AH=84h"AX"
--------N-1787-------------------------------
INT 17 - Alloy NTNX - SET INDOS POINTER
AH = 87h
AL = 00h
CX:BX -> buffer for user-written printer drivers
Return: BX,CX destroyed
Note: must be executed before the printer is enabled
SeeAlso: AH=8Ah
--------N-1788-------------------------------
INT 17 - Alloy NTNX, MW386 - REMOVE PRINTER FROM SPOOLER
AH = 88h
AL = mode
00h NTNX compatibility
DX = NTNX printer number (see #0560)
01h MW386
DX = MW386 printer number
Return: AH = status (see #0559)
Note: removes specified printer from the spooler's list of printers
SeeAlso: AH=89h,AH=8Bh
(Table 0560)
Values for Alloy NTNX printer number:
00h host LPT1
01h host LPT2
02h host LPT3
03h host LPT4
04h host COM1
05h host COM2
06h user's logical COM2
07h user's terminal AUX port
08h user's logical COM1 (MW386 only)
--------N-1789-------------------------------
INT 17 - Alloy NTNX, MW386 - ADD PRINTER TO SPOOLER
AH = 89h
AL = mode
00h NTNX compatibility
DX = NTNX printer number (see #0560)
01h MW386
DX = MW386 printer number
Return: AL = status (see #0559)
Note: the specified printer is added to the spooler's list of available
printers
SeeAlso: AH=88h,AH=8Bh
--------N-178A-------------------------------
INT 17 - Alloy NTNX - ACTIVATE USER-WRITTEN PRINTER DRIVER
AH = 8Ah
???
SeeAlso: AH=92h
--------N-178B-------------------------------
INT 17 - Alloy MW386 - GET PHYSICAL DEVICE NUMBER FROM NAME
AH = 8Bh
DS:DX -> ASCIZ printer name
Return: AL = status (see also AH=81h)
00h successful
DX = physical device number
SeeAlso: AH=89h,AH=8Ch,INT 14/AH=20h"Alloy"
--------N-178C-------------------------------
INT 17 - Alloy MW386 - GET DEVICE NAME FROM PHYSICAL DEVICE NUMBER
AH = 8Ch
DX = physical device number
ES:DI -> 17-byte buffer for ASCIZ device name
Return: AL = status (see also AH=81h)
00h successful
ES:DI buffer filled
SeeAlso: AH=88h,AH=8Bh
--------N-178D-------------------------------
INT 17 - Alloy NTNX,MW386 - RESET SPOOLER
AH = 8Dh
AL = 00h
Return: AL = status (see #0559)
Notes: clears all buffers and resets spooler to boot-up values
MW386 supports this function for compatibility only; it is a NOP
--------N-178E-------------------------------
INT 17 - Alloy NTNX - GET INT 28 ENTRY POINT
AH = 8Eh
AL = 00h
Return: CX:BX -> INT 28 entry point
SeeAlso: AH=8Fh
--------N-178F-------------------------------
INT 17 - Alloy NTNX - GET DOS INTERCEPT ENTRY POINT
AH = 8Fh
AL = 00h
Return: CX:BX -> DOS intercept routine
SeeAlso: AH=8Eh
--------N-1790-------------------------------
INT 17 - Alloy NTNX, MW386 - SPOOL FILE BY NAME
AH = 90h
AL = mode
00h NTNX compatibility
DL = printer code (FFh=current) (NTNX, MW386 v1.x only)
DH = number of copies (FFh=current) (NTNX, MW386 v1.x only)
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
CX:SI -> ASCIZ pathname
Return: AL = status (see #0559)
Note: in mode 00h, the file is always sent to logical LPT1
SeeAlso: AH=A0h
--------N-1791-------------------------------
INT 17 - Alloy NTNX, MW386 - GET USER NUMBER AND CURRENT PRINTER
AH = 91h
AL = mode
00h NTNX compatibility
Return: CX = user number (00h = host)
DX = currently selected printer number (00h-08h)
01h MW386
Return: CX = user number
DX = physical dev number of currently selected printer
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
Return: CX = user number
DX = physical device number
Return: AL = status (see #0559)
SeeAlso: AH=8Ch
--------N-1792-------------------------------
INT 17 - Alloy NTNX - CHECK PRINTER DRIVER
AH = 92h
AL = 00h
CL = 00h
Return: CL = driver state
01h initialized
80h not initialized
AX = status (see #0559)
SeeAlso: AH=8Ah
--------N-1794-------------------------------
INT 17 - Alloy NTNX, MW386 - SELECT PRINTER
AH = 94h
AL = mode
00h NTNX compatibility
DX = NTNX printer number (see #0560)
01h MW386
DX = MW386 printer number
02h MW386 v2+
BX = logical printer number
DX = MW386 printer number
Return: AL = status (see #0559)
Note: modes 00h and 01h affect only logical LPT1
SeeAlso: AH=8Bh,AH=95h
--------N-1795-------------------------------
INT 17 - Alloy NTNX, MW386 - GET CURRENT PRINTER
AH = 95h
AL = mode
00h NTNX compatibility
Return: DX = NTNX printer number (see #0560)
(FFFFh if current printer not compatible with NTNX)
01h MW386
Return: DX = MW386 printer number
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
Return: DX = MW386 printer number (FFFFh = none)
Return: AL = status (see #0559)
Note: modes 00h and 01h return the printer number of logical LPT1 only
SeeAlso: AH=94h
--------N-1796-------------------------------
INT 17 - Alloy NTNX - SET SERIAL PORT PARAMETERS
AH = 96h
AL = 00h
Note: documentation states that this is a NOP, doing only XOR AX,AX before
returning
SeeAlso: INT 14/AH=24h
--------N-1797-------------------------------
INT 17 - Alloy NTNX, MW386 - SET DATA DRIVEN PRINT BREAK
AH = 97h
AL = mode
00h NTNX compatibility
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
CH,CL,DH = three character break sequence
DL = subfunction
00h set break string
else reset break
Return: AL = status (see #0559)
Notes: mode 00h affects only logical LPT1
when the break string is encountered, the spool file will be closed and
queued for printing automatically
the break string is not permanently saved, and will be reset each time
MW386 or the user is rebooted
SeeAlso: AH=9Bh
--------N-1798-------------------------------
INT 17 - Alloy NTNX,MW386 - RESTART PRINTER
AH = 98h
AL = 00h
DL = printer number (FFh=current)
Return: AL = status
00h successful
01h incorrect printer
02h task not found
Note: MW386 supports this function for compatibility only; it is a NOP
--------N-1799-------------------------------
INT 17 - Alloy NTNX, MW386 - GET/SET PRINTER MODE
AH = 99h
AL = mode
00h NTNX compatibility
DL = NTNX printer number (see #0560)
(FFh = task's current logical LPT1)
DH = mode (see #0561)
01h MW386
DX = MW386 printer number
CL = mode (as for DH above)
Return: AL = status (see #0559)
DH = mode (bits 1 and 2 set as above)
DL = printer owner's user number if not spooled
Bitfields for Alloy printer mode:
0 get mode if 1, set mode if 0 (Table 0561)
1 private ("attached")
2 direct instead of spooled
3-7 reserved (0)
--------N-179A-------------------------------
INT 17 - Alloy NTNX,MW386 - SET TAB EXPANSION
AH = 9Ah
AL = mode
00h NTNX compatibility
DX = NTNX printer number (see #0560)
(FFFFh = current logical LPT1)
01h MW386
DX = MW386 printer number
CL = tab length (00h = no expansion, 01h-63h = spaces per tab)
Return: AL = status (see #0559)
Note: beginning with MW386 v2.0, tab expansion is set on a per-printer basis
rather than a per-user basis; NTNX and MW386 v1.x ignore DX
SeeAlso: AH=A4h
--------N-179B-------------------------------
INT 17 - Alloy NTNX,MW386 - SET PRINT BREAK TIMEOUT
AH = 9Bh
AL = mode
00h NTNX compatibility
CX = timeout value in clock ticks (1/18 sec) (00h = never)
01h MW386
CX = timeout value in seconds (00h = never)
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
CX = timeout value in seconds (00h = never)
Return: AL = status (see #0559)
Notes: modes 00h and 01h affect only the current logical LPT1
if no data is sent to a printer for the specified amount of time, the
spool file will be closed and queued for printing automatically
SeeAlso: AH=97h
--------N-17A0-------------------------------
INT 17 - Alloy MW386 - SPOOL COPY OF FILE
AH = A0h
AL = mode
00h NTNX compatibility
DX = ??? (NTNX, MW386 v1.x only)
02h MW386 v2+
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
CX:SI -> ASCIZ pathname
Return: AL = status (see #0559)
Notes: makes a copy of the specified file in the spooler's directory, allowing
the original file to be modified or deleted while the copy is printed
in mode 00h, the file is printed on logical LPT1
SeeAlso: AH=90h
--------N-17A4-------------------------------
INT 17 - Alloy MW386 - ENABLE/DISABLE FORM FEED
AH = A4h
AL = new state
00h form feed after end of print job disabled
01h form feed enabled
Return: AL = status (see #0559)
Note: only affects the current logical LPT1
SeeAlso: AH=9Ah,AH=A6h,INT 7F/AH=05h"NTNX (Host)"
--------N-17A6-------------------------------
INT 17 - Alloy MW386 - ENABLE/DISABLE BANNER PAGE
AH = A6h
AL = new state
00h banner page before print job disabled
01h banner page enabled
Return: AL = status (see #0559)
Note: only affects the current logical LPT1
SeeAlso: AH=A4h
--------N-17A7-------------------------------
INT 17 - Alloy MW386 v2+ - GET/SET SPOOL FLAGS
AH = A7h
AL = spool flags (see #0562)
BX = logical device number
00h-03h = LPT1-LPT4
04h-07h = COM1-COM4
Return: AL = status (see #0559)
Note: the documentation does not state which register contains the result of
a GET
SeeAlso: AH=A4h,AH=A6h
Bitfields for Alloy spool flags:
Bit(s) Description (Table 0562)
0 banner page enabled (see AH=A6h)
1 form feed enabled (see AH=A4h)
2-6 reserved (0)
7 set flags if 1, get flags if 0
--------N-17A8-------------------------------
INT 17 - Alloy MW386 - DEFINE TEMPORARY FILENAME
AH = A8h
CX:SI -> ASCIZ filename without extension (max 8 chars)
Return: AL = status (see #0559)
Note: allows application to specify banner page filename for spool files
collected from the application's printer output
SeeAlso: AH=A9h
--------N-17A9-------------------------------
INT 17 - Alloy MW386 - CHANGE TEMPORARY SPOOL DRIVE
AH = A9h
AL = new spool drive (2=C:,3=D:,etc)
Return: AL = status (see #0559)
Note: does not remove previous spooling directory since jobs may be pending
SeeAlso: AH=A8h
--------N-17AA-------------------------------
INT 17 - Alloy MW386 v2+ - GET REAL-TIME PRINTER STATUS
AH = AAh
AL = mode
00h NTNX
DX = NTNX printer number (see #0560)
01h MW386
DX = MW386 printer number
Return: AH = instantaneous printer status
00h printer ready
01h not ready
12h off line
13h out of paper
14h general device failure
15h device timeout
16h bad device number
--------N-17AF-------------------------------
INT 17 - Alloy MW386 - CHECK SPOOLER
AH = AFh
Return: AX = 55AAh if spooler available
--------c-17C0-------------------------------
INT 17 - PC Magazine PCSpool - GET CONTROL BLOCK ADDRESS
AH = C0h
DX = printer port (0-3)
Return: ES:BX -> control block (see #0563)
SeeAlso: AH=C1h
Format of PCSpool control block:
Offset Size Description (Table 0563)
00h WORD printer number
02h WORD address of printer status port
04h WORD number of first record in queue
06h WORD number of last record in queue
08h DWORD characters already printed
0Ch DWORD number of characters remaining
10h DWORD pointer to dequeue buffer
14h DWORD previous count of characters printed
18h DWORD number of clock ticks taken to print them
1Ch WORD offset of next character to output
1Eh WORD offset of next character to print
20h WORD pointer to spooling queue record
22h BYTE current spooling status
23h BYTE current printer status:
00h OK
01h not ready
02h paused with message
03h paused
04h initializing
FEh non-existent port
FFh not spooled
24h BYTE current control record type
25h WORD observed printer speed
27h WORD characters to print per service
29h BYTE 01h if disk write needed
2Ah BYTE 01h if queued data should be flushed
2Bh BYTE 01h to update cps status
--------c-17C1--------------------------------
INT 17 - PC Magazine PCSpool - BUILD PAUSE CONTROL RECORD
AH = C1h
DX = printer port (0-3)
DS:SI -> ASCIZ string to save for display
Note: flushes pending writes
SeeAlso: AH=C0h,AH=C2h
--------c-17C2-------------------------------
INT 17 - PC Magazine PCSpool - FLUSH PENDING WRITES
AH = C2h
DX = printer port (0-3)
SeeAlso: AH=C3h
--------c-17C3-------------------------------
INT 17 - PC Magazine PCSpool - CANCEL PRINTER QUEUE (FLUSH ALL QUEUED OUTPUT)
AH = C3h
DX = printer port (0-3)
SeeAlso: AH=C2h,AH=C7h
--------c-17C4-------------------------------
INT 17 - PC Magazine PCSpool - QUERY SPOOLER ACTIVE
AH = C4h
Return: DI = B0BFh
SI = segment
--------c-17C5-------------------------------
INT 17 - PC Magazine PCSpool - JOB SKIP PRINTER QUEUE
AH = C5h
DX = printer port (0-3)
Note: cancels up to the pause record
--------c-17C6-------------------------------
INT 17 - PC Magazine PCSpool - CHECK PRINTER QUEUE STATUS
AH = C6h
DX = printer port (0-3)
Return: AX = queue status
0000h printer not active or at pause
0001h printer busy
--------c-17C7-------------------------------
INT 17 - PC Magazine PCSpool - CLOSE QUEUE
AH = C7h
DX = printer port (0-3)
SeeAlso: AH=C3h
--------P-17CD00-----------------------------
INT 17 - INSET - EXECUTE COMMAND STRING
AX = CD00h
DS:DX -> ASCIZ command string (max 80 bytes)
Return: CX = 07C2h (1986d)
Note: user interface menus pop up after last command, unless that command
exits INSET
--------P-17CD01-----------------------------
INT 17 - INSET - GET IMAGE SIZE
AX = CD01h
DS:DX -> ASCIZ name of image file
Return: AX = height in 1/720th inch
BX = width in 1/720th inch
CX = 07C2h (1986d)
--------P-17CD02-----------------------------
INT 17 - INSET - INITIALIZE
AX = CD02h
Return: CX = 07C2h (1986d)
Note: all open files are closed and the printer is reset
SeeAlso: AX=CD04h
--------P-17CD03-----------------------------
INT 17 - INSET - EXECUTE INSET MENU WITHIN OVERRIDE MODE
AX = CD03h
Return: CX = 07C2h (1986d)
--------P-17CD04-----------------------------
INT 17 - INSET - INITIALIZE LINKED MODE
AX = CD04h
ES:SI -> FAR routine for linked mode (see #0564)
Return: CX = 07C2h
SeeAlso: AX=CD02h,AX=CD08h
(Table 0564)
Values INSET linked-mode routine is called with:
AL = function
00h send character to printer
BL = character to send
01h send string to printer
CX = number of bytes to send
DS:DX -> buffer containing data
02h move print head to horizontal starting position of image
Return: AX = status
0000h success
0001h failure
--------P-17CD05-----------------------------
INT 17 - INSET - START MERGING IMAGE INTO TEXT
AX = CD05h
DS:DX -> ASCIZ name of PIX file
CX = left margin of text in 1/720th inch
Return: AH = printer type
00h page-oriented (multiple images may be placed side-by-side)
01h line-oriented (use AX=CD06h for vertical paper movement)
CX = 07C2h (1986d)
SeeAlso: AX=CD07h
--------P-17CD06-----------------------------
INT 17 - INSET - GRAPHICS LINE FEED
AX = CD06h
Return: AH = completion status
00h image complete
01h image incomplete
CX = 07C2h (1986d)
SeeAlso: AX=CD09h
--------P-17CD07-----------------------------
INT 17 - INSET - FLUSH GRAPHICS FROM MERGE BUFFER
AX = CD07h
Return: CX = 07C2h
SeeAlso: AX=CD05h
--------P-17CD08-----------------------------
INT 17 - INSET - CANCEL LINK MODE
AX = CD08h
Return: CX = 07C2h
SeeAlso: AX=CD04h
--------P-17CD09-----------------------------
INT 17 - INSET - ALTER TEXT LINE SPACING
AX = CD09h
CX = line spacing in 1/720th inch
Return: CX = 07C2h
Note: not yet implemented, line spacing is currently fixed at 1/6 inch
SeeAlso: AX=CD06h
--------P-17CD0A-----------------------------
INT 17 - INSET - GET SETUP
AX = CD0Ah
DS:DX -> buffer for IN.SET data
Return: CX = 07C2h
--------P-17CD0B-----------------------------
INT 17 - INSET - START GETTING SCALED IMAGE
AX = CD0Bh
DS:SI -> ASCIZ pathname of .PIX file
BX = number of bitplanes
CX = number of rows in output bitmap
DX = number of columns in output bitmap
Return: AX = status
0000h OK
FFFFh error
Note: image is returned in strips by repeated calls to AX=CD0Ch
--------P-17CD0C-----------------------------
INT 17 - INSET - GET NEXT IMAGE STRIP
AX = CD0Ch
Return: AX = status
0000h OK but not complete
0001h OK and image complete
FFFFh error
DS:SI -> buffer (max 4K) for bit map strip
CX = start row
DX = number of rows
BX = offset in bytes between bit planes
Note: buffer may be overwritten by subsequent calls
SeeAlso: AX=CD0Bh
--------P-17E0-------------------------------
INT 17 - EPP BIOS - INSTALLATION CHECK
AH = E0h
Return: ??? (AH <> E0h if installed ???)
SeeAlso: AX=0200h"EPP",AH=E1h,AH=E2h
--------P-17E1-------------------------------
INT 17 - EPP BIOS - DISABLE EPP
AH = E1h
???
Return: ???
SeeAlso: AX=0200h"EPP",AH=E0h,AH=E2h
--------P-17E2-------------------------------
INT 17 - EPP BIOS - ENABLE EPP
AH = E2h
???
Return: ???
SeeAlso: AX=0200h"EPP",AH=E0h,AH=E1h
--------P-17F0-------------------------------
INT 17 - NorthNet Jetstream API - INSTALLATION CHECK
AH = F0h
DX = printer port (0-3)
Return: AX = 0001h Jetstream present
else non-Jetstream port
Note: NorthNet Jetstream is a high-performance DMA-driven parallel card able
to drive printers at up to 80000 characters per second
--------P-17F1-------------------------------
INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER
AH = F1h
CX = data buffer length
DX = printer port (0-3)
DS:SI -> data buffer
Return: AX = status
0000h printer not ready (see also AH=02h)
other printing started
SeeAlso: AH=00h,AH=F2h,AH=F3h,AH=F5h
--------P-17F2-------------------------------
INT 17 - NorthNet Jetstream API - GET PRINT PROGRESS STATUS
AH = F2h
DX = printer port (0-3)
Return: AX = status
0000h prior print request finished
other number of characters left to print
SeeAlso: AH=02h,AH=F1h,AH=F3h
--------P-17F3-------------------------------
INT 17 - NorthNet Jetstream API - ABORT PRINT OPERATION
AH = F3h
DX = printer port (0-3)
Return: AX = number of unprinted characters due to abort
SeeAlso: AH=F1h,AH=F4h
--------P-17F4-------------------------------
INT 17 - NorthNet Jetstream API - SET COMPLETION (POST) ADDRESS
AH = F4h
DX = printer port (0-3)
DS:DS -> FAR post address (called with interrupts on)
SeeAlso: AH=F1h,AH=F3h
--------P-17F5-------------------------------
INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER FROM EXTENDED MEMORY
AH = F5h
CX = data buffer length
DX = printer port (0-3)
DS:SI -> data buffer (32-bit physical address)
Return: AX = status
0000h printer not ready (see also AH=02h)
other printing started
SeeAlso: AH=F1h
--------c-17FF--BX0000-----------------------
INT 17 U - PC-MOS/386 v5.01 - PRINT SPOOLER - CLOSE SPOOL FILE
AH = FFh
BX = 0000h
CX = 0000h
DX = printer port number
Return: AH = printer status (see #0548 at AH=00h)
Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
operating system by The Software Link, Inc.
Desc: close the spool file immediately instead of waiting for the close time
to elapse
SeeAlso: AH=01h,AH=03h"PC-MOS"
--------B-18---------------------------------
INT 18 - DISKLESS BOOT HOOK (START CASSETTE BASIC)
Desc: called when there is no bootable disk available to the system
Notes: only PCs produced by IBM contain BASIC in ROM, so the action is
unpredictable on compatibles; this interrupt often reboots the
system, and often has no effect at all
network cards with their own BIOS can hook this interrupt to allow
a diskless boot off the network (even when a hard disk is present
if none of the partitions is marked as the boot partition)
SeeAlso: INT 2F/AX=4A06h,INT 86"NetBIOS"
--------J-1800-------------------------------
INT 18 - NEC PC-9800 series - KEYBOARD - GET KEYSTROKE
AH = 00h
Return: AX = keystroke
SeeAlso: AH=01h,AH=02h,INT 16/AH=00h
--------J-1801-------------------------------
INT 18 - NEC PC-9800 series - KEYBOARD - CHECK FOR KEYSTROKE
AH = 01h
Return: BH = status
00h no keystrokes available
01h keystroke available
AX = keystroke
SeeAlso: AH=00h,AH=02h,INT 16/AH=01h
--------J-1802-------------------------------
INT 18 - NEC PC-9800 series - KEYBOARD - GET SHIFT STATUS
AH = 02h
Return: AL = shift flags
SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,INT 16/AH=02h
--------J-1803-------------------------------
INT 18 - NEC PC-9800 series - KEYBOARD - INITIALIZE
AH = 03h
???
Return: ???
SeeAlso: AH=00h,AH=04h
--------J-1804-------------------------------
INT 18 - NEC PC-9800 series - KEYBOARD - KEY PRESSED
AH = 04h
???
Return: ???
Note: details are not available at this time
SeeAlso: AH=00h,AH=02h,INT 16/AH=00h,INT 16/AH=01h,INT 16/AH=02h
--------J-18---------------------------------
INT 18 - NEC PC-9800 series - VIDEO
AH = function
0Ah set video mode
0Bh get video mode
0Ch start text screen display
0Dh end text screen display
0Eh set single display area
0Fh set multiple display area
10h set cursor shape
11h display cursor
12h terminate cursor
13h set cursor position
14h read font patter
16h initialize text video RAM
1Ah define user character
others
???
Return: ???
Notes: details are not available at this time
text video RAM is located at segments A000h (characters) and A200h
(attributes), graphics video RAM at segment C000h
Bitfields for NEC PC-9800 series video attributes:
Bit(s) Description (Table 0565)
0 disable drawing character
1 blinking
2 reverse video
3 underline
4 vertical line
7-5 color
(0=black, 1=blue, 2=red, 3=purple, 4=green, 5=cyan, 6=yellow, 7=white)
--------J-180E-------------------------------
INT 18 - NEC PC-9800 series - SET SINGLE DISPLAY AREA
AH = 0Eh
DX = offset of first byte to display???
Return: ???
SeeAlso: AH=1Bh,MEM 0050h:0001h
--------J-181B-------------------------------
INT 18 - NEC PC-9800 series - SET DISPLAY MODE
AH = 1Bh
AL = ??? (00h for text mode)
Return: ???
--------r-185350BX4849-----------------------
INT 18 - SPHINX C-- - WB.COM - API
AX = 5350h ('SP')
BX = 4849h ('HI')
CX = 4E58h ('NX')
DH = function
01h set ???
DL = ???
02h get ???
Return: DL = ???
03h get ???
Return: ES:DI -> ??? data buffer
06h ???
Return: AX = 7370h ('sp') if installed
BX = 6869h ('hi') if installed
CX = 6E78h ('nx') if installed
Program: SPHINX C-- is a shareware compiler by Peter Cellik for a language
which is a cross between C and assembler; WB.COM is the driver which
launches the WorkBench
--------s-186900-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET STATUS
AX = 6900h
Return: AX = amount of DRAM on card or 0000h if GUS not available
Program: YEA_GUS is a driver for the Graphics Ultra Sound which hooks INT 18h
and then shells out the the program requiring its services
SeeAlso: AX=6901h,AX=690Ah,AX=690Bh
--------s-186901-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESET
AX = 6901h
BX = number of active voices (14-32)
Return: nothing
SeeAlso: AX=6900h
--------s-186902-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOLUME FOR SPECIFIC VOICE
AX = 6902h
BX = voice number (00h-1Fh)
CX = linear volume (0000h-01FFh)
Return: nothing
SeeAlso: AX=6900h,AX=6903h,AX=6904h,AX=6909h,AX=690Ah
--------s-186903-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET FREQUENCY FOR VOICE
AX = 6903h
BX = voice number (00h-1Fh)
CX = frequency in Hz (0-44100)
Return: nothing
SeeAlso: AX=6902h,AX=6904h
--------s-186904-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET LEFT/RIGHT BALANCE
AX = 6904h
BX = voice number (00h-1Fh)
CX = balance (0 = left, 7 = even, 15 = right)
Return: nothing
SeeAlso: AX=6902h,AX=6903h
--------s-186905-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - PLAY MUSIC
AX = 6905h
BL = voice number
BH = sample type (0 = 8-bit, 1 = 16-bit)
CL = looping type (0 = none, 1 = forward, 2 = back and forth)
CH:DI = 20-bit starting address for voice data
DL:SI = 20-bit address for loop start
DH:BP = 20-bit address for loop end
SeeAlso: AX=6903h,AX=6906h,AX=690Bh
--------s-186906-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - LOAD SOUND DATA
AX = 6906h
BL = data format (1 = twos-complement, 0 = not)
BH = sample type (0 = 8-bit, 1 = 16-bit)
CX = number of bytes to send
ES:SI -> buffer containing data
DL:DI = 20-bit address of GUS DRAM at which to load sound data
SeeAlso: AX=6900h,AX=6905h,AX=690Ch
--------s-186907-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - STOP VOICE
AX = 6907h
BX = voice number (00h-1Fh)
Return: nothing
SeeAlso: AX=6908h,AX=690Dh
--------s-186908-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOICE END
AX = 6908h
BX = voice number (00h-1Fh)
CL:DX = 20-bit ending address
Return: nothing
SeeAlso: AX=690Bh
--------s-186909-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RAMP VOLUME
AX = 6909h
BL = voice number (00h-1Fh)
BH = looping type (0 = none, 1 = forward, 2 = back and forth)
CX = starting volume
DX = ending volume
DI:SI = time
Return: nothing
SeeAlso: AX=6902h,AX=690Ah
--------s-18690A-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET VOLUME
AX = 690Ah
BX = voice number (00h-1Fh)
Return: AX = current non-linear volume for voice
SeeAlso: AX=6902h,AX=6909h
--------s-18690B-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET POSITION
AX = 690Bh
BX = voice number
Return: BX:AX = 20-bit address at which voice is playing
SeeAlso: AX=6900h,AX=6905h,AX=6908h
--------s-18690C-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SAVE SOUND DATA
AX = 690Ch
BL = data format (1 = twos-complement, 0 = not)
BH = sample type (0 = 8-bit, 1 = 16-bit)
CX = number of bytes to get
ES:SI -> buffer for retrieved data
DL:DI = 20-bit address in GUS DRAM from which to read voice data
Return: nothing
SeeAlso: AX=6906h
--------s-18690D-----------------------------
INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESTART VOICE
AX = 690Dh
BX = voice
CX = sample type (0 = 8-bit, 1 = 16-bit)
DX = looping type (0 = none, 1 = forward, 2 = back and forth)
Return: CX = balance value
SeeAlso: AX=6907h,AX=6908h
--------s-188000-----------------------------
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - INITIALIZE
AX = 8000h
Program: EURO_MOD is a .MOD file player for the Gravis Ultra Sound which hooks
INT 18h and then shells out to the program requiring its services
SeeAlso: AX=8001h,AX=8004h
--------s-188001-----------------------------
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - LOAD .MOD FILE
AX = 8001h
BX:CX -> ASCIZ filename
SeeAlso: AX=8000h,AX=8002h
--------s-188002-----------------------------
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - PLAY .MOD FILE
AX = 8002h
SeeAlso: AX=8002h,AX=8003h
--------s-188003-----------------------------
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - STOP PLAYING
AX = 8003h
--------s-188004-----------------------------
INT 18 - Gravis Ultra Sound EURO_MOD.EXE - SHUTDOWN
AX = 8004h
SeeAlso: AX=8000h,AX=8003h
--------B-19---------------------------------
INT 19 - SYSTEM - BOOTSTRAP LOADER
Desc: This interrupt reboots the system without clearing memory or restoring
interrupt vectors. Because interrupt vectors are preserved, this
interrupt usually causes a system hang if any TSRs have hooked
vectors from 00h through 1Ch, particularly INT 08.
Notes: Usually, the BIOS will try to read sector 1, head 0, track 0 from drive
A: to 0000h:7C00h. If this fails, and a hard disk is installed, the
BIOS will read sector 1, head 0, track 0 of the first hard disk.
This sector should contain a master bootstrap loader and a partition
table (see #0567). After loading the master boot sector at
0000h:7C00h, the master bootstrap loader is given control
(see #0570). It will scan the partition table for an active
partition, and will then load the operating system's bootstrap
loader (contained in the first sector of the active partition) and
give it control.
true IBM PCs and most clones issue an INT 18 if neither floppy nor hard
disk have a valid boot sector
to accomplish a warm boot equivalent to Ctrl-Alt-Del, store 1234h in
0040h:0072h and jump to FFFFh:0000h. For a cold boot equivalent to
a reset, store 0000h at 0040h:0072h before jumping.
VDISK.SYS hooks this interrupt to allow applications to find out how
much extended memory has been used by VDISKs (see #0566). DOS 3.3+
PRINT hooks INT 19 but does not set up a correct VDISK header block
at the beginning of its INT 19 handler segment, thus causing some
programs to overwrite extended memory which is already in use.
the default handler is at F000h:E6F2h for 100% compatible BIOSes
MS-DOS 3.2+ hangs on booting (even from floppy) if the hard disk
contains extended partitions which point at each other in a loop,
since it will never find the end of the linked list of extended
partitions
under Windows Real and Enhanced modes, calling INT 19 will hang the
system in the same was as under bare DOS; under Windows Standard
mode, INT 19 will successfully perform a cold reboot as it appears
to have been redirected to a MOV AL,0FEh/OUT 64h,AL sequence
BUG: when loading the remainder of the DOS system files fails, various
versions of IBMBIO.COM/IO.SYS incorrectly restore INT 1E before
calling INT 19, assuming that the boot sector had stored the
contents of INT 1E at DS:SI instead of on the stack as it actually
does
SeeAlso: INT 14/AH=17h,INT 18"BOOT HOOK",INT 49"Tandy 2000",INT 5B"PC Cluster"
Format of VDISK header block (at beginning of INT 19 handler's segment):
Offset Size Description (Table 0566)
00h 18 BYTEs n/a (for VDISK.SYS, the device driver header)
12h 11 BYTEs signature string "VDISK Vn.m" for VDISK.SYS version n.m
1Dh 15 BYTEs n/a
2Ch 3 BYTEs linear address of first byte of available extended memory
Format of hard disk master boot sector:
Offset Size Description (Table 0567)
00h 446 BYTEs Master bootstrap loader code
1BEh 16 BYTEs partition record for partition 1 (see #0568)
1CEh 16 BYTEs partition record for partition 2
1DEh 16 BYTEs partition record for partition 3
1EEh 16 BYTEs partition record for partition 4
1FEh WORD signature, AA55h indicates valid boot block
Format of partition record:
Offset Size Description (Table 0568)
00h BYTE boot indicator (80h = active partition)
01h BYTE partition start head
02h BYTE partition start sector (bits 0-5)
03h BYTE partition start track (bits 8,9 in bits 6,7 of sector)
04h BYTE operating system indicator (see #0569)
05h BYTE partition end head
06h BYTE partition end sector (bits 0-5)
07h BYTE partition end track (bits 8,9 in bits 6,7 of sector)
08h DWORD sectors preceding partition
0Ch DWORD length of partition in sectors
SeeAlso: #0567
(Table 0569)
Values for operating system indicator:
00h empty
01h DOS 12-bit FAT
02h XENIX root file system
03h XENIX /usr file system (obsolete)
04h DOS 16-bit FAT (up to 32M)
05h DOS 3.3+ extended partition
06h DOS 3.31+ Large File System (16-bit FAT, over 32M)
07h QNX
07h OS/2 HPFS
07h Windows NT NTFS
07h Advanced Unix
08h OS/2 (v1.0-1.3 only)
08h AIX bootable partition, SplitDrive
08h Commodore DOS
08h DELL partition spanning multiple drives
09h AIX data partition
09h Coherent filesystem
0Ah OS/2 Boot Manager
0Ah OPUS
0Ah Coherent swap partition
0Bh Windows95 with 32-bit FAT
0Ch Windows95 with 32-bit FAT (using LBA-mode INT 13 extensions)
0Eh logical-block-addressable VFAT (same as 06h but using LBA-mode INT 13)
0Fh logical-block-addressable VFAT (same as 05h but using LBA-mode INT 13)
10h OPUS
11h OS/2 Boot Manager hidden 12-bit FAT partition
12h Compaq Diagnostics partition
14h (resulted from using Novell DOS 7.0 FDISK to delete Linux Native part)
14h OS/2 Boot Manager hidden sub-32M 16-bit FAT partition
16h OS/2 Boot Manager hidden over-32M 16-bit FAT partition
17h OS/2 Boot Manager hidden HPFS partition
18h AST special Windows swap file ("Zero-Volt Suspend" partition)
21h officially listed as reserved
23h officially listed as reserved
24h NEC MS-DOS 3.x
26h officially listed as reserved
31h officially listed as reserved
33h officially listed as reserved
34h officially listed as reserved
36h officially listed as reserved
38h Theos
3Ch PowerQuest PartitionMagic recovery partition
40h VENIX 80286
41h Personal RISC Boot
42h SFS (Secure File System) by Peter Gutmann
50h OnTrack Disk Manager, read-only partition
51h OnTrack Disk Manager, read/write partition
51h NOVEL
52h CP/M
52h Microport System V/386
53h OnTrack Disk Manager, write-only partition???
54h OnTrack Disk Manager (DDO)
56h GoldenBow VFeature
61h SpeedStor
63h Unix SysV/386, 386/ix
63h Mach, MtXinu BSD 4.3 on Mach
63h GNU HURD
64h Novell NetWare 286
65h Novell NetWare (3.11)
67h Novell
68h Novell
69h Novell
70h DiskSecure Multi-Boot
71h officially listed as reserved
73h officially listed as reserved
74h officially listed as reserved
75h PC/IX
76h officially listed as reserved
80h Minix v1.1 - 1.4a
81h Minix v1.4b+
81h Linux
81h Mitac Advanced Disk Manager
82h Linux Swap partition
82h Prime
83h Linux native file system (ext2fs/xiafs)
84h OS/2-renumbered type 04h partition (related to hiding DOS C: drive)
86h FAT16 volume/stripe set (Windows NT)
87h HPFS Fault-Tolerant mirrored partition
87h NTFS volume/stripe set
93h Amoeba file system
94h Amoeba bad block table
A0h Phoenix NoteBIOS Power Management "Save-to-Disk" partition
A1h officially listed as reserved
A3h officially listed as reserved
A4h officially listed as reserved
A5h FreeBSD, BSD/386
A6h officially listed as reserved
B1h officially listed as reserved
B3h officially listed as reserved
B4h officially listed as reserved
B6h officially listed as reserved
B7h BSDI file system (secondarily swap)
B8h BSDI swap partition (secondarily file system)
C1h DR DOS 6.0 LOGIN.EXE-secured 12-bit FAT partition
C4h DR DOS 6.0 LOGIN.EXE-secured 16-bit FAT partition
C6h DR DOS 6.0 LOGIN.EXE-secured Huge partition
C6h corrupted FAT16 volume/stripe set (Windows NT)
C7h Syrinx Boot
C7h corrupted NTFS volume/stripe set
D8h CP/M-86
DBh CP/M, Concurrent CP/M, Concurrent DOS
DBh CTOS (Convergent Technologies OS)
E1h SpeedStor 12-bit FAT extended partition
E3h DOS read-only
E3h Storage Dimensions
E4h SpeedStor 16-bit FAT extended partition
E5h officially listed as reserved
E6h officially listed as reserved
F1h Storage Dimensions
F2h DOS 3.3+ secondary partition
F3h officially listed as reserved
F4h SpeedStor
F4h Storage Dimensions
F6h officially listed as reserved
FEh LANstep
FEh IBM PS/2 IML
FFh Xenix bad block table
Note: for partition type 07h, one should inspect the partition boot record
for the actual file system type
SeeAlso: #0568
(Table 0570)
Values Bootstrap loader is called with (IBM BIOS):
CS:IP = 0000h:7C00h
DH = access
bits 7-6,4-0: don't care
bit 5: =0 device supported by INT 13
DL = boot drive
00h first floppy
80h first hard disk
--------B-1A00-------------------------------
INT 1A - TIME - GET SYSTEM TIME
AH = 00h
Return: CX:DX = number of clock ticks since midnight
AL = midnight flag, nonzero if midnight passed since time last read
Notes: there are approximately 18.2 clock ticks per second, 1800B0h per 24 hrs
(except on Tandy 2000, where the clock runs at 20 ticks per second)
IBM and many clone BIOSes set the flag for AL rather than incrementing
it, leading to loss of a day if two consecutive midnights pass
without a request for the time (e.g. if the system is on but idle)
since the midnight flag is cleared, if an application calls this
function after midnight before DOS does, DOS will not receive the
midnight flag and will fail to advance the date
SeeAlso: AH=01h,AH=02h,INT 21/AH=2Ch,INT 55"Tandy 2000",INT 4E/AH=02h"TI"
SeeAlso: INT 62/AX=0099h,MEM 0040h:006Ch
--------B-1A01-------------------------------
INT 1A - TIME - SET SYSTEM TIME
AH = 01h
CX:DX = number of clock ticks since midnight
Return: nothing
Notes: there are approximately 18.2 clock ticks per second, 1800B0h per 24 hrs
(except on Tandy 2000, where the clock runs at 20 ticks per second)
this call resets the midnight-passed flag
SeeAlso: AH=00h,AH=03h,INT 21/AH=2Dh
--------B-1A02-------------------------------
INT 1A - TIME - GET REAL-TIME CLOCK TIME (AT,XT286,PS)
AH = 02h
Return: CF clear if successful
CH = hour (BCD)
CL = minutes (BCD)
DH = seconds (BCD)
DL = daylight savings flag (00h standard time, 01h daylight time)
CF set on error (i.e. clock not running or in middle of update)
Note: this function is also supported by the Sperry PC, which predates the
IBM AT; the data is returned in binary rather than BCD on the Sperry,
and DL is always 00h
SeeAlso: AH=00h,AH=03h,AH=04h,INT 21/AH=2Ch
--------b-1A02-------------------------------
INT 1A - Tandy 2000 - TIME - GET DATE AND TIME
AH = 02h
Return: BX = number of days since January 1, 1980
CH = hours
CL = minutes
DH = seconds
DL = hundredths
SeeAlso: AH=03h"Tandy 2000",INT 55"Tandy 2000"
--------B-1A03-------------------------------
INT 1A - TIME - SET REAL-TIME CLOCK TIME (AT,XT286,PS)
AH = 03h
CH = hour (BCD)
CL = minutes (BCD)
DH = seconds (BCD)
DL = daylight savings flag (00h standard time, 01h daylight time)
Return: nothing
Note: this function is also supported by the Sperry PC, which predates the
IBM AT; the data is specified in binary rather than BCD on the
Sperry, and the value of DL is ignored
SeeAlso: AH=01h,AH=03h,AH=05h,INT 21/AH=2Dh,INT 4B/AH=01h
--------b-1A03-------------------------------
INT 1A - Tandy 2000 - TIME - SET DATE AND TIME
AH = 03h
BX = number of days since January 1, 1980
CH = hours
CL = minutes
DH = seconds
DL = hundredths
Return: nothing
SeeAlso: AH=02h"Tandy 2000",INT 55"Tandy 2000"
--------B-1A04-------------------------------
INT 1A - TIME - GET REAL-TIME CLOCK DATE (AT,XT286,PS)
AH = 04h
Return: CF clear if successful
CH = century (BCD)
CL = year (BCD)
DH = month (BCD)
DL = day (BCD)
CF set on error
SeeAlso: AH=02h,AH=04h"Sperry",AH=05h,INT 21/AH=2Ah,INT 4B/AH=02h"TI"
--------b-1A04-------------------------------
INT 1A - Sperry PC - GET REAL-TIME CLOCK DATE
AH = 04h
Return: CF clear if successful
CL = year-1980
DH = month (binary) (01h-0Ch)
DL = day (binary) (01h-1Fh)
CF set on error
SeeAlso: AH=02h,AH=04h,AH=05h"Sperry",INT 21/AH=2Ah,INT 4B/AH=02h"TI"
--------B-1A05-------------------------------
INT 1A - TIME - SET REAL-TIME CLOCK DATE (AT,XT286,PS)
AH = 05h
CH = century (BCD)
CL = year (BCD)
DH = month (BCD)
DL = day (BCD)
Return: nothing
SeeAlso: AH=04h,INT 21/AH=2Bh"DATE",INT 4B/AH=00h"TI"
--------b-1A05-------------------------------
INT 1A - Sperry PC - SET REAL-TIME CLOCK DATE
AH = 05h
CL = year-1980
CH = 00h (???)
DH = month (binary) (01h-0Ch)
DL = day (binary) (01h-1Fh)
Return: nothing
SeeAlso: AH=02h,AH=04h"Sperry",AH=05h,INT 21/AH=2Bh"DATE"
--------B-1A06-------------------------------
INT 1A - TIME - SET ALARM (AT,XT286,PS)
AH = 06h
CH = hour (BCD)
CL = minutes (BCD)
DH = seconds (BCD)
Return: CF set on error (alarm already set or clock stopped for update)
CF clear if successful
Notes: the alarm occurs every 24 hours until turned off, invoking INT 4A each
time
the BIOS does not check for invalid values for the time, so the CMOS
clock chip's "don't care" setting (any values between C0h and FFh)
may be used for any or all three parts. For example, to create an
alarm once a minute, every minute, call with CH=FFh, CL=FFh, and
DH=00h.
SeeAlso: AH=07h,AH=0Ch,INT 4A"SYSTEM"
--------B-1A07-------------------------------
INT 1A - TIME - CANCEL ALARM (AT,XT286,PS)
AH = 07h
Return: alarm disabled
Note: does not disable the real-time clock's IRQ
SeeAlso: AH=06h,AH=0Dh,INT 70
--------B-1A08-------------------------------
INT 1A - TIME - SET RTC ACTIVATED POWER ON MODE (CONVERTIBLE)
AH = 08h
CH = hours in BCD
CL = minutes in BCD
DH = seconds in BCD
SeeAlso: AH=09h
--------B-1A09-------------------------------
INT 1A - TIME - READ RTC ALARM TIME AND STATUS (CONV,PS30)
AH = 09h
Return: CH = hours in BCD
CL = minutes in BCD
DH = seconds in BCD
DL = alarm status
00h alarm not enabled
01h alarm enabled but will not power up system
02h alarm will power up system
SeeAlso: AH=08h
--------B-1A0A-------------------------------
INT 1A - TIME - READ SYSTEM-TIMER DAY COUNTER (XT2,PS)
AH = 0Ah
Return: CF set on error
CF clear if successful
CX = count of days since Jan 1,1980
SeeAlso: AH=04h,AH=0Bh
--------B-1A0B-------------------------------
INT 1A - TIME - SET SYSTEM-TIMER DAY COUNTER (XT2,PS)
AH = 0Bh
CX = count of days since Jan 1,1980
Return: CF set on error
CF clear if successful
SeeAlso: AH=05h,AH=0Ah
--------B-1A0C-------------------------------
INT 1A - TIME - SET RTC DATE/TIME ACTIVATED POWER-ON MODE (IBM)
AH = 0Ch
CH = hours (BCD)
CL = minutes (BCD)
DH = seconds (BCD)
DL = day of month (BCD)
Return: CF clear if successful
CF set on error (alarm already set or clock nonfunctional)
Desc: set an automatic power-on for a given time in the future
Note: IBM classifies this function as optional
SeeAlso: AH=06h,AH=0Dh,AH=0Eh,INT 4A
--------B-1A0D-------------------------------
INT 1A - TIME - RESET RTC DATE/TIME ACTIVATED POWER-ON MODE (IBM)
AH = 0Dh
Return: CF clear if successful
CF set on error
Desc: cancel a previously-set power-on alarm
Note: IBM classifies this function as optional
SeeAlso: AH=07h,AH=0Ch,AH=0Eh
--------B-1A0E-------------------------------
INT 1A - TIME - GET RTC DATE/TIME ALARM AND STATUS (IBM)
AH = 0Eh
Return: CF clear if successful
BH = alarm status
00h disabled
01h enabled but will not power-up system
02h enabled, system will power-up on activation
CH = alarm time, hours (BCD)
CL = alarm time, minutes (BCD)
DH = seconds (BCD)
DL = day of month (BCD)
CF set on error
SeeAlso: AH=0Ch,AH=0Dh,AH=0Fh
--------B-1A0F-------------------------------
INT 1A - TIME - INITIALIZE REAL-TIME CLOCK
AH = 0Fh
AL = reserved (0)
Return: CF clear if successful
CF set on error
SeeAlso: AH=0Ch,AH=0Dh,AH=0Eh
--------J-1A10-------------------------------
INT 1A - NEC PC-9800 series - PRINTER - INITIALIZE
AH = 10h
???
Return: ???
SeeAlso: AH=11h,AH=12h,INT 17/AH=01h
--------J-1A1000-----------------------------
INT 1A - NEC PC-9800 series - INSTALLATION CHECK
AX = 1000h
Return: AX <> 1000h if NEC
--------J-1A11-------------------------------
INT 1A - NEC PC-9800 series - PRINTER - OUTPUT CHARACTER
AH = 11h
???
Return: ???
SeeAlso: AH=10h,AH=12h,INT 17/AH=00h
--------J-1A12-------------------------------
INT 1A - NEC PC-9800 series - PRINTER - SENSE STATUS
AH = 12h
???
Return: ???
SeeAlso: AH=10h,AH=11h,INT 17/AH=02h
--------A-1A3601-----------------------------
INT 1A - WORD PERFECT v5.0 Third Party Interface - INSTALLATION CHECK
AX = 3601h
Return: DS:SI = routine to monitor keyboard input, immediately preceded by the
ASCIZ string "WPCORP\0"
Notes: WordPerfect 5.0 will call this interrupt at start up to determine if a
third party product wants to interface with it. The third party
product must intercept this interrupt and return the address of a
keyboard monitor routine.
Before checking for keyboard input, and after every key entered by the
user, Word Perfect will call the routine whose address was provided
in DS:SI with the following parameters:
Entry: AX = key code or 0
BX = WordPerfect state flag
Exit: AX = 0 or key code
BX = 0 or segment address of buffer with key codes
See the "WordPerfect 5.0 Developer's Toolkit" for further information.
SeeAlso: INT 16/AX=5500h
--------N-1A6108-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDWITHREPLY" - SEND MSG AND GET REPLY
AX = 6108h
STACK: WORD conversation ID (0000h-0009h)
DWORD pointer to message buffer
WORD length of message
DWORD pointer to reply buffer
WORD length of reply buffer
WORD 0000h (use default "Cparams" structure)
Return: AX = status (see #0571)
STACK unchanged
Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
which implements the Simple Network Application Protocol
SeeAlso: AX=6205h
(Table 0571)
Values for SNAP.EXE status:
0000h successful
F830h "SNAP_ABORTED"
FC04h "SNAP_SERVERDIED"
FC05h "SNAP_RESEND"
FC06h "SNAP_SELECTFAILED"
FC07h "SNAP_WRONGVERSION"
FC08h "SNAP_INVALIDACK"
FC09h "SNAP_TIMEOUT"
FC0Ah "SNAP_SERVERREJECT"
FC0Bh "SNAP_NOREPLYDUE"
FC0Ch "SNAP_NOAUTHENTICATE"/"SNAP_GUARDIAN_ERROR"
FC0Dh "SNAP_NOINIT"
FC0Eh "SNAP_SOCKETERROR"
FC0Fh "SNAP_BUFFERLIMIT"
FC10h "SNAP_INVALIDCID"
FC11h "SNAP_INVALIDOP"
FC12h "SNAP_XMITFAIL"
FC13h "SNAP_NOMORERETRIES"
FC14h "SNAP_BADPARMS"
FC15h "SNAP_NOMEMORY"
FC16h "SNAP_NOMORECONVS"
FFFFh failed (invalid function/parameter)
--------N-1A6205-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDNOREPLY" - SEND MSG, DON'T AWAIT REPLY
AX = 6205h
STACK: WORD conversation ID (0000h-0009h)
DWORD pointer to message
WORD length of message
WORD 0000h (use default "Cparms" structure)
Return: AX = status (see #0571)
STACK unchanged
SeeAlso: AX=6108h
--------N-1A6308-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_BEGINCONV" - BEGIN CONVERSATION
AX = 6308h
STACK: WORD offset of ASCIZ "guardian"
WORD offset of ASCIZ hostname
WORD offset of ASCIZ server name
WORD offset of ASCIZ userid
WORD offset of ASCIZ password
WORD offset of password length
WORD offset of password type
WORD offset of "Cparms" structure (see #0572)
Return: ???
STACK unchanged
Note: all stacked offsets are within the SNAP data segment (use AX=6A01h
to allocate a buffer)
SeeAlso: AX=6405h,AX=7202h
Format of SNAP.EXE Cparms structure:
Offset Size Description (Table 0572)
00h WORD retry delay in seconds
02h WORD timeout delay in seconds
04h WORD maximum buffer size
06h WORD encryption level
--------N-1A6405-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_ENDCONV" - END CONVERSATION
AX = 6405h
STACK: WORD conversation ID (0000h-0009h)
DWORD pointer to message buffer
WORD length of message
WORD 0000h (use default "Cparms" structure)
Return: AX = status (see #0571)
STACK unchanged
Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
which implements the Simple Network Application Protocol
SeeAlso: AX=6308h
--------N-1A6900-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_DATASEG" - GET RESIDENT DATA SEGMENT
AX = 6900h
Return: AX = value used for DS by resident code
SeeAlso: AX=6A01h,AX=6F01h
--------N-1A6A01-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_ALLOC" - ALLOCATE BUFFER IN SNAP DATA SEGMENT
AX = 6A01h
STACK: WORD number of bytes to allocate
Return: AX = offset of allocated buffer or 0000h if out of memory
STACK unchanged
Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
which implements the Simple Network Application Protocol
SeeAlso: AX=6B01h
--------N-1A6B01-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_FREE" - DEALLOCATE BUFFER IN SNAP DATA SEGMENT
AX = 6B01h
STACK: WORD offset within SNAP data segment of previously allocated
buffer
Return: STACK unchanged
Note: this call is a NOP if the specified offset is 0000h
SeeAlso: AX=6A01h
--------N-1A6C04-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYTO" - COPY DATA TO RESIDENT SNAP PACKAGE
AX = 6C04h
STACK: WORD offset within SNAP data segment of dest (nonzero)
WORD segment of source buffer
WORD offset of source buffer
WORD number of bytes to copy
Return: AX = offset of byte after last one copied to destination
STACK unchanged
Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
which implements the Simple Network Application Protocol
SeeAlso: AX=6D04h
--------N-1A6D04-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYFROM" - COPY DATA FROM RESIDENT SNAP PACKAGE
AX = 6D04h
STACK: WORD offset within SNAP data segment of source buffer
WORD segment of destination buffer
WORD offset of destination buffer
WORD number of bytes to copy
Return: AX = offset of byte after last one copied from source
buffer filled
STACK unchanged
SeeAlso: AX=6C04h
--------N-1A6E01-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_SETDEBUG" - SET ???
AX = 6E01h
STACK: WORD new value for ???
Return: AX = old value of ???
STACK unchanged
Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
which implements the Simple Network Application Protocol
--------N-1A6F01-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_CHKINSTALL" - INSTALLATION CHECK
AX = 6F01h
STACK: WORD 0000h
Return: AX = status
0000h SNAP is resident
other SNAP not present
STACK unchanged
Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
which implements the Simple Network Application Protocol, and is
required by PCVENUS (a network shell). The combination of SNAP and
PCVENUS allows the use of the Andrew File System as one or more
networked drives.
SeeAlso: AX=6900h,AX=7400h
--------N-1A7002-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_SETANCHOR"
AX = 7002h
STACK: WORD anchor number (0000h-0009h)
WORD new value for the anchor
Return: AX = status
0000h successful
FFFFh failed (top word on stack not in range 00h-09h)
STACK unchanged
SeeAlso: AX=7101h
--------N-1A7101-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_GETANCHOR"
AX = 7101h
STACK: WORD anchor number (0000h-0009h)
Return: AX = anchor's value
STACK unchanged
Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
which implements the Simple Network Application Protocol
SeeAlso: AX=7002h
--------N-1A7202-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_SETCONVPARMS" - SET CONVERSATION PARAMETERS
AX = 7202h
STACK: WORD conversation ID (0000h-0009h)
WORD offset within resident data segment of "Cparms"
structure (see #0572)
Return: AX = status???
STACK unchanged
SeeAlso: AX=6308h
--------N-1A7302-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_CLIENTVERSION" - ???
AX = 7302h
STACK: WORD conversation ID (0000h-0009h)
WORD offset within resident data segment of ???
Return: AX = ???
???
STACK unchanged
SeeAlso: AX=7400h
--------N-1A7400-----------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_VERSION" - GET VERSION
AX = 7400h
Return: AX = version (AH=major, AL=minor)
Note: this call is only valid if SNAP is installed
SeeAlso: AX=7302h,INT 1A/AX=6F01h
--------N-1A75-------------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_NOP" - ???
AH = 75h
AL = ???
Return: AX = ??? (0000h)
Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
which implements the Simple Network Application Protocol
--------N-1A76-------------------------------
INT 1A - SNAP.EXE 3.2+ - "SNAP_802_5" - ???
AH = 76h
AL = ???
Return: AX = ???
--------N-1A77-------------------------------
INT 1A - SNAP.EXE 3.4 - ???
AH = 77h
AL = ??? (at least 01h)
STACK: WORD ???
???
Return: ???
STACK unchanged
--------N-1A7802-----------------------------
INT 1A - SNAP.EXE 3.4 - ???
AX = 7802h
STACK: WORD ???
WORD ???
Return: ???
STACK unchanged
Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
which implements the Simple Network Application Protocol
--------s-1A7F-------------------------------
INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
AH = 7Fh
???
Return: ???
Note: this function is not supported by the Tandy 1000SL/TL BIOS
SeeAlso: AH=80h,AH=83h,AH=85h
--------s-1A80-------------------------------
INT 1A - PCjr, Tandy 2500???, Tandy 1000SL/TL - SET UP SOUND MULTIPLEXOR
AH = 80h
AL = 00h source is 8253 channel 2
01h source is cassette input
02h source is I/O channel "Audio IN"
03h source is sound generator chip
Note: although documented in the 1000TL Technical Reference, the 1000TL
BIOS has just an IRET for this call
SeeAlso: AH=7Fh,AH=83h
--------X-1A80-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - GET NUMBER OF ADAPTERS
AH = 80h
Return: CF clear if successful
CX = 5353h ('SS') if Socket Services installed
AL = number of adapters present (0-16)
AH destroyed
CF set on error
AH = error code (see #0573)
SeeAlso: AH=83h"PCMCIA"
(Table 0573)
Values for PCMCIA error codes:
01h "BAD_ADAPTER" nonexistent adapter
02h "BAD_ATTRIBUTE" invalid attribute specified
03h "BAD_BASE" invalid system memory base address
04h "BAD_EDC" invalid EDC generator specified
05h "BAD_INDICATOR" invalid indicator specified
06h "BAD_IRQ" invalid IRQ channel specified
07h "BAD_OFFSET" invalid PCMCIA card offset specified
08h "BAD_PAGE" invalid page specified
09h "BAD_READ" unable to complete request
0Ah "BAD_SIZE" invalid window size specified
0Bh "BAD_SOCKET" nonexistent socket specified
0Ch "BAD_TECHNOLOGY" unsupported Card Technology for writes
0Dh "BAD_TYPE" unavailable window type specified
0Eh "BAD_VCC" invalid Vcc power level index specified
0Fh "BAD_VPP" invalid Vpp1 or Vpp2 power level index specified
10h "BAD_WAIT" invalid number of wait states specified
11h "BAD_WINDOW" nonexistent window specified
12h "BAD_WRITE" unable to complete request
13h "NO_ADAPTERS" no adapters installed, but Socket Services is present
14h "NO_CARD" no card in socket
15h function not supported
16h invalid mode
17h invalid speed
18h busy
--------X-1A81-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - REGISTER STATUS CHANGE CALLBACK
AH = 81h
DS:DX -> callback routine (see #0574) or 0000h:0000h to disable
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (see #0573)
Note: the callback will be invoked on any socket changes whose notification
has not been disabled with the status change enable mask; it may be
invoked either while processing a hardware interrupt from the adapter
or while processing the following Socket Services request
SeeAlso: AH=80h"PCMCIA",AH=82h"PCMCIA"
(Table 0574)
Values PCMCIA callback routine is invoked with:
AL = adapter number
BH = status change interrupt enable mask (see #0575)
BL = socket number
DH = current socket status (see #0576)
DL = current card status (see #0577)
Return: all registers preserved
Notes: the callback may be invoked during a hardware interrupt, and may not
call on Socket Services
the callback will be invoked once for each socket with a status change
Bitfields for PCMCIA status change interrupt enable mask:
Bit(s) Description (Table 0575)
7 card detect change
6 ready change
5 battery warning change
4 battery dead change
3 insertion request
2 ejection request
1-0 reserved (0)
Bitfields for PCMCIA current socket status:
Bit(s) Description (Table 0576)
7 card changed
6 reserved (0)
5 card insertion complete
4 card ejection complete
3 card insertion request pending
2 card ejection request pending
1 card locked
0 reserved (0)
Bitfields for PCMCIA current card status:
Bit(s) Description (Table 0577)
7 card detect
6 ready
5 battery voltage detect 2 (battery warning)
4 battery voltage detect 1 (battery dead)
3-1 reserved (0)
0 write protected
--------s-1A8100-----------------------------
INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND - INSTALLATION CHECK
AX = 8100h
Return: AL > 80h if supported
AX = 00C4h if supported (1000SL/TL)
CF set if sound chip is busy
CF clear if sound chip is free
Note: the value of CF is not definitive; call this function until CF is
clear on return, then call AH=84h"Tandy"
--------s-1A82-------------------------------
INT 1A - Tandy 2500???, Tandy 1000SL/TL - DIGITAL SOUND - RECORD SOUND
AH = 82h
ES:BX -> buffer for sound samples
CX = length of buffer
DX = transfer rate (1-4095, 1 is fastest)
Return: AH = 00h
CF set if sound busy
CF clear if sound chip free
Note: the value in DX should be 1/10 the corresponding value for
INT 1A/AH=83h on the 1000TL, 1/11.5 on the 1000SL. Call
INT 1A/AX=8100h and INT 1A/AH=84h before invoking this function.
The BIOS issues an INT 15/AX=91FBh when the input is complete
DMA across a 64K boundary is masked by the BIOS
--------X-1A82-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - REGISTER CARD TECHNOLOGY CALLBACK
AH = 82h
DS:DX -> callback routine (see #0578) or 0000h:0000h
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (see #0573)
Note: the callback is invoked on a Write Multiple request with an unsupported
card technology type
SeeAlso: AH=81h"PCMCIA",AH=94h
(Table 0578)
Values PCMCIA callback routine is invoked with:
ES:AX -> Low-Level Socket Services Routines (see #0580)
BH = socket attributes (see #0579)
CX = number of bytes or words to write
DS:SI -> data buffer to be written
DX:DI -> 26-bit linear card address
BP = card technology type
Return: CF clear if successful
CF set on error
AH = error code (07h,0Ch,12h,14h) (see #0573)
Bitfields for PCMCIA socket attributes:
Bit(s) Description (Table 0579)
7-4 reserved (0)
3 packed buffer
2 even bytes only (only valid if 1 set)
1 data width (clear = byte, set = word)
0 memory type (clear = common, set = attribute)
Format of PCMCIA Low-Level Socket Services Routines:
Offset Size Description (Table 0580)
00h WORD offset of Write Many routine (see #0581)
02h WORD offset of Write One routine (see #0582)
04h WORD offset of Read One routine (see #0583)
06h WORD offset of Increment Offset routine (see #0584)
08h WORD offset of Set Offset routine (see #0585)
0Ah WORD offset of Get Status routine (see #0586)
(Table 0581)
Call Write Many routine with:
BH = socket attributes (see #0579)
CX = number of bytes or words to write
DS:SI -> data to be written
Return: CF clear if successful
CF set on error
(Table 0582)
Call Write One routine with:
AL/AX = data to be written
BH = socket attributes (see #0579)
Return: CF clear if successful
CF set on error
(Table 0583)
Call Read One routine with:
BH = socket attributes (see #0579)
Return: CF clear if successful
AL/AX = data read
CF set on error
(Table 0584)
Call Increment Offset routine with:
BH = socket attributes (see #0579)
Return: CF clear if successful
CF set on error
(Table 0585)
Call Set Offset routine with:
DX:DI = new offset address
Return: CF clear if successful
CF set on error
(Table 0586)
Call Get Status routine with:
nothing
Return: AL = current card status (see #0577)
--------s-1A83-------------------------------
INT 1A - Tandy 2500, Tandy 1000L series - START PLAYING DIGITAL SOUND
AH = 83h
AL = volume (0=silence, 7=highest)
CX = number of bytes to play
DX = time between sound samples (multiples of 273 nanoseconds)
only bits 11-0 used
ES:BX -> sound data (array of 8-bit unsigned PCM samples)
Return: AH = 00h
CF set if sound is busy
CF clear if sound chip is free
Notes: this call returns immediately while the sound plays in the
background; the sound chip is clocked at 3.57 MHz, with the low 12
bits of DX specifying the clock divisor
The BIOS appears to call INT 15/AX=91FBh when the sound device
underflows to allow another INT 1A/AH=83h for seamless playing of
long sounds.
SeeAlso: AH=84h"Tandy",INT 15/AH=91h
--------X-1A83-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - GET SOCKET SERVICES VERSION NUMBER
AH = 83h
AL = adapter number
Return: CF clear if successful
AX = Socket Services version (BCD)
BX = implementation version (BCD)
CX = 5353h ("SS")
DS:SI -> ASCIZ implementor description
CF set on error
AH = error code (01h) (see #0573)
Note: the current version (from the Revision A.00 documentation) of Socket
Services is 1.00 (AX=0100h)
SeeAlso: AH=80h"PCMCIA"
--------s-1A84-------------------------------
INT 1A - Tandy 2500, Tandy 1000L series - STOP PLAYING DIGITAL SOUND
AH = 84h
Return: ???
Note: the BIOS will call INT 15/AX=91FBh when the sound has stopped playing
SeeAlso: AH=83h"Tandy",AH=85h"Tandy"
--------X-1A84-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - INQUIRE ADAPTER
AH = 84h
AL = adapter number
Return: CF clear if successful
AH destroyed
BH = number of windows
BL = number of sockets (1-16)
CX = number of EDCs
DH = capabilities (see #0587)
DL = status change interrupt used (only if DH bit 3 set)(see #0588)
CF set on error
AH = error code (01h) (see #0573)
SeeAlso: AH=80h"PCMCIA",AH=85h"PCMCIA",AH=87h
Bitfields for PCMCIA capabilities:
Bit(s) Description (Table 0587)
7-6 reserved (0)
5 status change interrupt is hardware shareable
4 status change interrupt is software shareable
3 status change interrupt
2 data bus width is per-socket rather than per-window
1 power management is per-adapter rather than per-socket
0 indicators are per-adapter rather than per-socket
(Table 0588)
Values for PCMCIA status change interrupt usage:
00h-0Fh IRQ level
10h NMI
11h I/O check
12h bus error
13h vendor specific
14h-FFh reserved
--------s-1A85-------------------------------
INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
AH = 85h
???
Return: ???
Note: this function is not supported by the Tandy 1000SL/TL BIOS
SeeAlso: AH=7Fh,AH=83h"Tandy"
--------X-1A85-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - GET ADAPTER
AH = 85h
AL = adapter number
Return: CF clear if successful
AH destroyed
DH = adapter attributes (see #0589)
CF set on error
AH = error code (01h) (see #0573)
SeeAlso: AH=84h"PCMCIA",AH=86h
Bitfields for PCMCIA adapter attributes:
Bit(s) Description (Table 0589)
7-5 reserved (0)
4 hardware share status change
3 software share status change
2 enable status change interrupts
1 adapter preserves state information during reduced power consumption
0 attempting to reduce power consumption
--------X-1A86-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - SET ADAPTER
AH = 86h
AL = adapter number
DH = new adapter attributes (see #0589)
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h) (see #0573)
SeeAlso: AH=84h"PCMCIA",AH=85h"PCMCIA"
--------X-1A87-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - INQUIRE WINDOW
AH = 87h
AL = adapter number
BH = window number
Return: CF clear if successful
AH destroyed
BL = capabilities (see #0590)
CX = bitmap of assignable sockets
DH = EISA A15-A12 address lines (in bits 7-4, bits 3-0 = 0)
DL = supported access speeds (see #0591)
DS:SI -> Memory Window Characteristics table (see #0592)
DS:DI -> I/O Window Characteristics table (see #0593)
CF set on error
AH = error code (01h,11h) (see #0573)
SeeAlso: AH=84h"PCMCIA",AH=88h,AH=89h,AH=8Ch
Bitfields for PCMCIA window capabilities:
Bit(s) Description (Table 0590)
7-5 reserved (0)
4 separate enable for EISA comon space
3 EISA I/O mappable
2 I/O space
1 attribute memory
0 common memory
Bitfields for PCMCIA supported access speeds:
Bit(s) Description (Table 0591)
7 reserved (0)
6 600 ns
5 300 ns
4 250 ns
3 200 ns
2 150 ns
1 100 ns
0 WAIT line monitoring
Format of PCMCIA Memory Window Characteristics table:
Offset Size Description (Table 0592)
00h WORD window capabilities (see #0594)
02h WORD minimum base address in 4K pages
04h WORD maximum base address in 4K pages
06h WORD minimum window size in 4K pages
08h WORD maximum window size in 4K pages
0Ah WORD window size granularity (4K units)
0Ch WORD required base address alignment (4K units)
0Eh WORD required card offset alignment (4K units)
Format of PCMCIA I/O Window Characteristics table:
Offset Size Description (Table 0593)
00h WORD window capabilities (see #0594)
02h WORD minimum base address in bytes
04h WORD maximum base address in bytes
06h WORD minimum window size in bytes
08h WORD maximum window size in bytes
0Ah WORD window size granularity (bytes)
Bitfields for PCMCIA window capabilities:
Bit(s) Description (Table 0594)
0 programmable base address
1 programmable window size
2 window disable/enable supported
3 8-data bus
4 16-data bus
5 base address alignment on size boundary required
6 power-of-two size granularity
---memory windows---
7 card offset must be aligned on size boundary
8 paging hardware available
9 paging hardware shared
10 page disable/enable supported
11-15 reserved (0)
---I/O windows---
7-15 reserved (0)
--------X-1A88-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - GET WINDOW
AH = 88h
AL = adapter number
BH = window number
Return: CF clear if successful
AH destroyed
BL = socket number (0-16) (0 = not assigned)
CX = window size (bytes for I/O window, 4K units for memory window)
DH = window attributes (see #0595)
DL = access speed (only one bit set) (see #0591)
SI = window base address (bytes if I/O, 4K units if memory)
DI = card offset address (memory only, 4K units)
CF set on error
AH = error code (01h,11h) (see #0573)
SeeAlso: AH=87h,AH=89h,AH=8Ah
Bitfields for PCMCIA window attributes:
Bit(s) Description (Table 0595)
0 memory-mapped rather than I/O-mapped
1 attribute memory rather than common (memory-mapped)
EISA mapped (I/O)
2 enabled
3 16-data path
4 subdivided into pages (memory-mapped only)
5 non-specific access slot enable (EISA-mapped only)
6-7 reserved (0)
--------X-1A89-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - SET WINDOW
AH = 89h
AL = adapter number
BH = window number
BL = socket number
CX = window size (bytes if I/O window, 4K units if memory window)
DH = window attributes (see #0595)
DL = access speed (only one bit set) (see #0591)
SI = window base address (bytes if I/O, 4K units if memory window)
DI = card offset addrress (memory only, 4K units)
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,03h,07h,08h,0Ah,0Bh,0Dh,10h,11h) (see #0573)
SeeAlso: AH=87h,AH=88h,AH=8Bh
--------X-1A8A-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - GET PAGE
AH = 8Ah
AL = adapter number
BH = window number
BL = page number
Return: CF clear if successful
AH destroyed
DX = page attributes (see #0596)
DI = memory card offset (4K units)
CF set on error
AH = error code (01h,08h,11h) (see #0573)
Notes: this function is only valid for memory-mapped windows
the socket being operated on is implied by the previous AH=89h call
SeeAlso: AH=88h,AH=8Bh
Bitfields for PCMCIA page attributes:
Bit(s) Description (Table 0596)
0 page enabled
15-1 reserved (0)
--------X-1A8B-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - SET PAGE
AH = 8Bh
AL = adapter number
BH = window number
BL = page number
DX = page attributes (see #0596)
DI = memory card offset (4K units)
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,02h,07h,08h,11h) (see #0573)
Notes: this function is only valid for memory-mapped windows
the socket being operated on is implied by the previous AH=89h call
SeeAlso: AH=89h,AH=8Ah
--------X-1A8C-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - INQUIRE SOCKET
AH = 8Ch
AL = adapter number
BL = socket number (01h to maximum supported by adapter)
Return: CF clear if successful
AH destroyed
DH = capabilities (see #0597)
DL = hardware indicators (see #0598)
DS:SI -> Socket Characteristics table (see #0599)
DS:DI -> Power Management table (see #0601)
CF set on error
AH = error code (01h,0Bh) (see #0573)
SeeAlso: AH=87h,AH=8Dh,AH=8Eh
Bitfields for PCMCIA socket capabilities:
Bit(s) Description (Table 0597)
0 card change
1 card lock
2 insert card (motor control)
3 eject card (motor control)
4-7 reserved (0)
Bitfields for PCMCIA socket hardware indicators:
Bit(s) Description (Table 0598)
0 busy status
1 write-protected
2 battery status
3 card lock status
4 XIP status (eXecute-In-Place)
5-7 reserved (0)
Format of PCMCIA Socket Characteristics table:
Offset Size Description (Table 0599)
00h WORD supported card types (see #0600)
02h WORD steerable IRQ levels (bit 0 = IRQ0 to bit 15 = IRQ15)
04h WORD additional steerable IRQ levels
bit 0: NMI
bit 1: I/O check
bit 2: bus error
bit 3: vendor-unique
bits 4-7 reserved (0)
Bitfields for supported card types:
Bit(s) Description (Table 0600)
0 memory card
1 I/O card
2-7 reserved (0)
Format of PCMCIA Power Management table:
Offset Size Description (Table 0601)
00h WORD number of entries in table (0 if power management not avail)
02h 2N BYTEs power levels
byte 0: voltage in 0.1V units
byte 1: power supply
bit 7: Vcc
bit 6: Vpp1
bit 5: Vpp2
--------X-1A8D-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - GET SOCKET
AH = 8Dh
AL = adapter number
BL = socket number (01h to maximum supported by adapter)
Return: CF clear if successful
AH destroyed
BH = status change interrupt enable mask (see #0575)
CH = Vcc level (lower nybble) (see #0601)
CL = Vpp1 level (upper nybble) and Vpp2 level (lower nybble)
DH = current socket status (see #0576)
DL = indicators (see #0598)
SI = card type (see #0602)
DI = IRQ level steering (I/O only) (see #0603)
CF set on error
AH = error code (01h,0Bh) (see #0573)
SeeAlso: AH=8Ch,AH=8Eh
Bitfields for PCMCIA card type:
Bit(s) Description (Table 0602)
0 memory
1 I/O
2-15 reserved (0)
Bitfields for PCMCIA I/O level steering:
Bit(s) Description (Table 0603)
15 interrupt steering enabled
14-5 reserved (0)
4-0 IRQ level (0-15=IRQ,16=NMI,17=I/O check,18=bus error,19=vendor)
--------X-1A8E-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - SET SOCKET
AH = 8Eh
AL = adapter number
BL = socket number (01h to maximum supported by adapter)
BH = status change interrupt enable mask (see #0575)
CL = Vpp1 level (upper nybble) and Vpp2 level (lower nybble)
DH = current socket status (see #0576)
DL = indicators (see #0598)
SI = card type (see #0602)
DI = IRQ level steering (I/O only) (see #0603)
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,02h,05h,06h,0Bh,0Eh,0Fh) (see #0573)
SeeAlso: AH=8Ch,AH=8Dh
--------X-1A8F-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - GET CARD
AH = 8Fh
AL = adapter number
BL = socket number (01h to maximum supported by adapter)
Return: CF clear if successful
AH destroyed
DL = current card status (see #0577)
CF set on error
AH = error code (01h,0Bh) (see #0573)
SeeAlso: AH=8Dh,AH=90h
--------X-1A90-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - RESET CARD
AH = 90h
AL = adapter number
BL = socket number (01h to maximum supported by adapter)
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,0Bh,14h) (see #0573)
Note: toggles RESET pin of the specified card, but does not wait after
toggling the pin; it is the caller's responsibility to avoid
accessing the card before it is ready again
--------X-1A91-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - READ ONE
AH = 91h
AL = adapter number
BL = socket number (01h to maximum supported by adapter)
BH = attributes (see #0604)
DX:SI = card address
Return: CF clear if successful
AH destroyed
CL/CX = value read
CF set on error
AH = error code (01h,07h,09h,0Bh,14h) (see #0573)
CX may be destroyed
Note: this function is only valid for I/O-mapped sockets
SeeAlso: AH=92h,AH=93h,INT 21/AX=440Dh"DOS 3.2+"
Bitfields for PCMCIA attributes:
Bit(s) Description (Table 0604)
2 even bytes only
1 word rather than byte
0 attribute memory instead of common memory
--------X-1A92-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - WRITE ONE
AH = 92h
AL = adapter number
BL = socket number (01h to maximum supported by adapter)
BH = attributes (see #0604)
CL/CX = value to write
DX:SI = card address
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,07h,0Bh,12h,14h) (see #0573)
Note: this function is only valid for I/O-mapped sockets; it also does not
implement Card Technology handling--use AH=94h when writing to
non-RAM technologies
SeeAlso: AH=91h,AH=94h,INT 21/AX=440Dh"DOS 3.2+"
--------X-1A93-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - READ MULTIPLE
AH = 93h
AL = adapter number
BL = socket number (01h to maximum supported by adapter)
BH = attributes (see #0604)
CX = number of bytes or words to read
DX:SI = card address
DS:DI -> data buffer to be filled
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,07h,09h,0Bh,14h) (see #0573)
Note: this function is only available on I/O-mapped sockets
SeeAlso: AH=91h,AH=94h,INT 21/AX=440Dh"DOS 3.2+"
--------X-1A94-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - WRITE MULTIPLE
AH = 94h
AL = adapter number
BL = socket number (01h to maximum supported by adapter)
BH = attributes (see #0604)
CX = number of bytes or words to read
DX:DI = card address
DS:SI -> buffer containing data
BP = Card Technology type (0000h = RAM)
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,07h,0Bh,0Ch,12h,14h) (see #0573)
Notes: this function is only available on I/O-mapped sockets
Socket Services calls the Card Technology callback (see #0578) for
any card technology it does not directly support
SeeAlso: AH=82h"PCMCIA",AH=92h,AH=93h,INT 21/AX=440Dh"DOS 3.2+"
--------X-1A95-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - INQUIRE ERROR DETECTION CODE
AH = 95h
AL = adapter number
BH = EDC generator number
Return: CF clear if successful
AH destroyed
CX = bitmap of assignable sockets
DH = EDC capabilities (see #0605)
DL = supported EDC types (see #0606)
CF set on error
AH = error code (01h,04h) (see #0573)
SeeAlso: AH=96h,AH=9Ch
Bitfields for EDC capabilities:
Bit(s) Description (Table 0605)
0 unidirectional only generation
1 bidirectional only generation
2 register-based (I/O-mapped) support
3 memory-mapped support
4 pausable
5-7 reserved (0)
Bitfields for supported EDC types:
Bit(s) Description (Table 0606)
0 8-checksum
1 16-CRC-SDLC
2-7 reserved (0)
--------X-1A96-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - GET ERROR DETECTION CODE
AH = 96h
AL = adapter number
BH = EDC generator number
Return: CF clear if successful
AH destroyed
BL = socket number
DH = EDC attributes (see #0607)
DL = EDC type (see #0606) (only one bit set)
CF set on error
AH = error code (01h,04h) (see #0573)
SeeAlso: AH=95h,AH=97h,AH=9Ch
Bitfields for EDC attributes:
Bit(s) Description (Table 0607)
0 unidirectional only
1 (if 0 set) clear=read, set=write
2-7 reserved (0)
--------X-1A97-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - SET ERROR DETECTION CODE
AH = 97h
AL = adapter number
BH = EDC generator
BL = socket number
DH = EDC attributes (see #0607)
DL = EDC type (see #0606) (only one bit may be set)
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,02h,04h,0Bh) (see #0573)
SeeAlso: AH=96h,AH=9Ch
--------X-1A98-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - START ERROR DETECTION CODE
AH = 98h
AL = adapter number
BH = EDC generator
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,04h) (see #0573)
SeeAlso: AH=96h,AH=99h,AH=9Bh,AH=9Ch
--------X-1A99-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - PAUSE ERROR DETECTION CODE
AH = 99h
AL = adapter number
BH = EDC generator
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,04h) (see #0573)
SeeAlso: AH=9Ah
--------X-1A9A-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - RESUME ERROR DETECTION CODE
AH = 9Ah
AL = adapter number
BH = EDC generator
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (01h,04h) (see #0573)
SeeAlso: AH=99h,AH=98h
--------X-1A9B-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - STOP ERROR DETECTION CODE
AH = 9Bh
AL = adapter number
BH = EDC generator
Return: CF clear if successful
AH destroyed
CF set on error
AH = error code (see #0573)
SeeAlso: AH=98h,AH=99h,AH=9Ch
--------X-1A9C-------------------------------
INT 1A - PCMCIA Socket Services v1.00 - READ ERROR DETECTION CODE
AH = 9Ch
AL = adapter number
BH = EDC generator
Return: CF clear if successful
AH destroyed
DL/DX = computed checksum or CRC
CF set on error
AH = error code (01h,04h) (see #0573)
SeeAlso: AH=95h,AH=96h,AH=98h,AH=99h,AH=9Bh
--------X-1A9D-------------------------------
INT 1A - PCMCIA Socket Services v2.1??? - GET VENDOR INFO
AH = 9Dh
AL = adapter number
BH = EDC generator
ES:EDI -> vendor information structure (see #0608)
Return: CF clear if successful
AH destroyed
DX = vendor release number in BCD
ES:EDI unchanged
CF set on error
AH = error code (01h,15h) (see #0573)
Notes: this API is supported by recent versions of the AMI BIOS
the low-level API described here is hidden by the higher-level
ExCA API once Card Services has been installed
SeeAlso: AH=9Dh"ExCA"
Format of Vendor Information structure:
Offset Size Description (Table 0608)
00h WORD buffer length (set to size of buffer below)
04h WORD (ret) data length
08h x BYTEs implementor name (ASCIIZ string)
--------X-1A9D-------------------------------
INT 1A - Intel PCMCIA ExCA Card Services - API
AH = 9Dh
AL = subfunction (see #0609)
???
Return: ???
SeeAlso: AH=9Dh"ExCA",#0803
(Table 0609)
Values for PCMCIA ExCA Card Services subfunction number:
00h Client Services: Get Number of Sockets
01h Advanced Client Utilities: Initialize
02h Client Services: Register Client
03h Client Services: Deregister Client
04h Advanced Client Utilities: Enumerate Clients
05h Client Services: Register SCB
06h Client Services: Deregister SCB
07h Advanced Client Utilities: Register MTD
08h Advanced Client Utilities: Deregister MTD
09h Advanced Client Utilities: Enumerate MTD
0Ah Client Services: Get Status
0Bh Client Services: Reset Card
0Ch Client Utilities: Get First Tuple
0Dh Client Utilities: Get Next Tuple
0Eh Client Utilities: Determine First Region
0Fh Client Utilities: Determine Next Region
10h Client Utilities: Get First Region
11h Client Utilities: Get Next Region
12h Client Utilities: Get First Partition
13h Client Utilities: Get Next Partition
14h Bulk Memory Services: Open Region
15h Bulk Memory Services: Read Memory
16h Bulk Memory Services: Write Memory
17h Bulk Memory Services: Copy Memory
18h Bulk Memory Services: Erase Memory
19h Resource Management: Request I/O
1Ah Resource Management: Release I/O
1Bh Resource Management: Request Memory
1Ch Client Services: Modify Window
1Dh Resource Management: Release Memory
1Eh Client Services: Map Mem Page
1Fh Advanced Client Utilities: Return SS Entry
20h Advanced Client Utilities: Map Log to Phy
21h Advanced Client Utilities: Map Log Phy to Log
22h Resource Management: Request IRQ
23h Resource Management: Release IRQ
24h Bulk Memory Services: Close Region
--------X-1A9E-------------------------------
INT 1A - PCMCIA Socket Services v2.1 - ACKNOWLEDGE INTERRUPT
AH = 9Eh
AL = adapter number
Return: CF clear if successful
AH destroyed
CX = bitmap representing sockets which have changed status
CF set on error
AH = error code (01h) (see #0573)
Note: this API is supported by recent versions of the AMI BIOS
--------X-1A9F-------------------------------
INT 1A - PCMCIA Socket Services v2.1 - GET/SET PRIOR INT 1A HANDLER
AH = 9Fh
AL = adapter number
BL = mode
00h get prior INT 1Ah handler
01h set prior INT 1Ah handler
CX:DX -> new prior handler
Return: CF clear if successful
AH destroyed
CX:DX -> old prior handler
CF set on error
AH = error code (01h,15h,18h) (see #0573)
Desc: allows hooking of INT 16h "behind" the Socket Services hook
Note: this API is supported by recent versions of the AMI BIOS
SeeAlso: AH=9Eh,AH=A0h"PCMCIA",AH=AEh"PCMCIA"
--------c-1AA0-------------------------------
INT 1A U - Disk Spool II v2.07+ - INSTALLATION CHECK
AH = A0h
Return: AH = B0h if installed
AL = pending INT 1A/AH=D0h subfunction if nonzero???
ES = code segment
ES:BX -> name of current spool file
ES:SI -> current despool file
CL = despooler state (00h disabled, 41h enabled)
CH = spooler state (00h disabled, 41h enabled)
DL = despooler activity
00h currently active printing a file
41h standing by
DH = 00h ???
= 41h ???
DI = 0000h ???
0001h ???
Program: Disk Spool II is a shareware disk-based print spooler by Budget
Software Company
Note: this function is also supported by Vertisoft's Emulaser utility ELSPL,
as that is a licensed version of Disk Spool II
SeeAlso: AH=ABh,AH=C0h,AH=D0h,AH=E1h
--------X-1AA0-------------------------------
INT 1A - PCMCIA Socket Services v2.1 - GET/SET SOCKET SERVICES ADDRESS
AH = A0h
AL = adapter number
BH = mode
00h real mode
01h 16:16 protected mode
02h 16:32 protected mode
03h 00:32 (Flat) protected mode
BL = subfunction
00h return number of additional data areas (see #0610)
01h return description of additional data areas (see #0611)
02h accept mode-specific pointers to data areas (see #0612)
ES:EDI -> buffer supplied by caller
Return: CF clear if successful
AH destroyed
CX = number of additional data areas
ES:EDI unchanged
CF set on error
AH = error code (01h,02h,15h,16h,18h) (see #0573)
SeeAlso: AH=9Fh,AH=AEh
Format of PCMCIA Subfunction 00h Buffer Table Entry structure:
Offset Size Description (Table 0610)
00h DWORD 32-bit linear base address of the code segment
04h DWORD segment limit of the code segment
08h DWORD entry point offset
0Ch DWORD 32-bit linear base address of the data segment
(ignored in 00:32 flat mode)
10h DWORD segment limit of the data segment
14h DWORD data area offset. Only used in 32-bit protected mode.
SeeAlso: #0611,#0612
Format of PCMCIA Additional Data Area Description structure [array]:
Offset Size Description (Table 0611)
00h DWORD 32-bit linear base address of the additional data segment
(ignored in 00:32 flat mode)
04h DWORD segment limit of the code segment
08h DWORD data area offset (only used in 32-bit protected mode)
SeeAlso: #0610,#0612
Format of PCMCIA Subfunction 02h Buffer Table Entry structure:
Offset Size Description (Table 0612)
00h DWORD 32-bit offset(ignored in 16:16 protected mode)
04h DWORD selector (only used in 00:32 flat mode)
08h DWORD reserved
SeeAlso: #0610,#0611
--------X-1AA1-------------------------------
INT 1A - PCMCIA Socket Services v2.1 - GET ACCESS OFFSETS
AH = A1h
AL = adapter number
BH = Mode
00h = Real Mode
01h = 16:16 Protected Mode
02h = 16:32 Protected Mode
03h = 00:32 Protected Mode
CX = Number of access offsets
ES:EDI -> buffer supplied by caller, CX words long (see #0613)
Return: CF clear if successful
AH destroyed
DX = number of access offsets supported
ES:EDI unchanged
CF set on error
AH = error code (01h,15h,16h) (see #0573)
Desc: Returns an array of low-level adapter-specific optimized
PC Card access routines for adapters that use registers
or I/O ports to access PC Card memory. Adapters that access
PC Card memory through windows mapped to host system memory
do not support this function.
Note: offsets returned are 16-bit offsets into the
Socket Services code segment. They must be called
appropriately for the processor mode selected.
(Real, 16:16 and 16:32 modes use FAR CALL,
Flat 00:32 mode uses a 32-bit NEAR CALL).
SeeAlso: AH=AEh
Format of Offset Table structure:
Offset Size Description (Table 0613)
00h WORD Set Address
02h WORD Set Auto Increment
04h WORD Read Byte
06h WORD Read Word
08h WORD Read Byte with Auto Increment
0Ah WORD Read Word with Auto Increment
0Ch WORD Read Words
0Eh WORD Read Words with Auto Increment
10h WORD Write Byte
12h WORD Write Word
14h WORD Write Byte with Auto Increment
16h WORD Write Word with Auto Increment
18h WORD Write Words
1Ah WORD Write Words with Auto Increment
1Ch WORD Compare Byte
1Eh WORD Compare Byte with Auto Increment
20h WORD Compare Words
22h WORD Compare Words with Auto Increment
--------X-1AA2-------------------------------
INT 1A - CardBus Socket Services - ACCESS CONFIGURATION SPACE
AH = A2h
??? details not available
Return: ???
--------X-1AA4-------------------------------
INT 1A - CardBus Socket Services - GET BRIDGE WINDOW / WINDOW CAPABILITIES
AH = A4h
??? details not available
Return: ???
SeeAlso: AH=A5h"CardBus"
--------X-1AA5-------------------------------
INT 1A - CardBus Socket Services - SET BRIDGE WINDOW
AH = A5h
??? details not available
Return: ???
SeeAlso: AH=A4h"CardBus"
--------c-1AAB-------------------------------
INT 1A U - Disk Spool II v1.83 - INSTALLATION CHECK
AH = ABh
Return: AH = BAh if installed
AL = pending INT 1A/AH=ADh subfunction if nonzero???
ES = code segment
ES:BX -> name of current spool file
ES:SI -> current despool file
CL = despooler state (00h disabled, 41h enabled)
CH = spooler state (00h disabled, 41h enabled)
DL = despooler activity
00h currently active printing a file
41h standing by
DH = 00h ???
= 41h ???
DI = 0000h ???
0001h ???
Program: Disk Spool II is a shareware disk-based print spooler by Budget
Software Company
SeeAlso: AH=A0h,AH=ACh,AH=ADh,AH=E1h
--------c-1AAC-------------------------------
INT 1A U - Disk Spool II v1.83 - INSTALLATION CHECK
AH = ACh
Return: (see AH=ABh)
Note: this function is identical to AH=ABh
SeeAlso: AH=A0h,AH=ABh,AH=ADh
--------c-1AAD-------------------------------
INT 1A U - Disk Spool II v1.83 - FUNCTION CALLS
AH = ADh
AL = function code (see #0614)
Return: AH = 00h if successful
SeeAlso: AH=ABh
(Table 0614)
Values for Disk Spool function code:
02h enable spooler only
03h enable the despooler
04h disable the despooler
08h inhibit popup menu
09h enable popup menu
0Ah ???
0Bh disable the spooler
0Ch start despooler after last successfully printed document???
0Dh start despooler at the exact point where it last left off???
0Eh pop up the menu
0Fh ???
11h ???
14h ???
15h ???
16h ???
17h ???
18h ???
19h ???
20h clear file pointed to by the despooler???
21h ???
22h ???
23h ???
30h ???
--------X-1AAE-------------------------------
INT 1A - PCMCIA Socket Services v2.1 - VENDOR SPECIFIC
AH = AEh
AL = adapter number
all other registers are vendor-specific
Return: vendor specific
SeeAlso: AH=A1h,AH=AFh
--------X-1AAE-------------------------------
INT 1A - PCMCIA Socket Services v2.1 - API
AH = AEh
SI = function
0002h ???
0100h ???
0101h ???
8000h ???
8001h ???
details not yet available
Return: CF clear if successful
CF set on error
AH = error code (02h,0Bh,11h,15h,17h) (see #0573)
SeeAlso: AH=9Eh
--------X-1AAF-------------------------------
INT 1A - PCMCIA v2 Card Services - API
AH = AFh
AL = function
00h close memory
01h copy memory
02h deregister client
03h get client information (see #0619)
04h get configuration information (see #0621)
05h get first partition
06h get first region
07h get first tuple (see #0628)
08h get next partition
09h get next region
0Ah get next tuple
0Bh get Card Services information (see #0617)
0Ch get status
0Dh get tuple data (see #0629)
0Eh get first client (see #0618)
0Fh get/register Erase Queue
10h register client (see #0630)
11h reset function
12h map logical socket
13h map logical window
14h map memory page
15h map physical socket
16h map physical window
17h modify window
18h open memory
19h read memory
1Ah register MTD
1Bh release I/O
1Ch release IRQ (see #0632)
1Dh release window
1Eh release configuration (see #0633)
1Fh request I/O (see #0634)
20h request IRQ (see #0635)
21h reqeust window (see #0637)
22h request socket mask
23h return SS entry
24h write memory
25h deregister Erase Queue
26h check Erase Queue
27h modify configuration
28h register timer
29h set region
2Ah get next client
2Bh validate CIS
2Ch request exclusive access (see #0640)
2Dh release exclusive access (see #0640)
2Eh get event mask
2Fh release socket mask
30h request configuration (see #0641)
31h set event mask
32h add Socket Service
33h replace Socket Service
34h vendor-specific
35h adjust resource information
36h access configuration register
37h get first window
38h get next window
39h get memory page
3Ah request DMA
3Bh release DMA
further details not yet available
Return: ??? = result code (see #0615)
SeeAlso: AH=AEh
(Table 0615)
Values for PCMCIA Card Services result codes:
00h successful
01h invalid adapter number
02h bad value for attribute field
03h bad value for base system memory address
04h invalid EDC generator specified
05h (reserved for historical reasons)
06h invalid IRQ level specified
07h invalid PC Card memory array offset
08h invalid page number specified
09h unable to complete read request
0Ah invalid size specified
0Bh invalid socket number
0Ch (reserved for historical reasons)
0Dh invalid window or interface type
0Eh invalid Vcc power level specified
0Fh invalid Vpp1 or Vpp2 power level specified
10h (reserved for historical reasons)
11h invalid window number
12h unable to complete write request
13h (reserved for historical reasons)
14h no PC Card in socket
15h service not supported by implementation
16h unsupported processor mode
17h specified speed not available
18h busy -- retry later
19h undefined error (general failure)
1Ah storage medium write protected
1Bh argument length in (E)CX is invalid
1Ch bad value(s) in argument packet
1Dh configuration has already been locked
1Eh requested resource already in use
1Fh no more items of requested type available
20h out of resources
21h invalid client handle
22h unsupported client version
(Table 0616)
Values for Card Services Callback Event codes:
01h battery dead
02h battery low
03h card locked
04h card has become ready
05h card removed
06h card unlocked
07h motorized ejection complete
08h ejection requested
09h insertion complete
0Ah insertion requested
0Bh power management: resume
0Ch power management: suspend
0Dh exclusive access granted
0Eh exclusive access requested
0Fh perform physical reset
10h physical reset requested
11h card has been reset
12h MTD request (read/write/etc)
14h request for client info
15h timer has expired
16h Socket Service was modified
17h write-protected
18h attention requested
40h card insertion
80h reset complete
81h erase complete
82h registration complete
Format of Card Services Information:
Offset Size Description (Table 0617)
00h WORD length of information record in bytes
02h WORD signature
04h WORD number of sockets
06h WORD revision level
08h WORD Card Services level
0Ah WORD offset of vendor string
0Ch WORD length of vendor string
0Eh WORD number of functions
10h 255 BYTEs vendor string
SeeAlso: #0619
Format of Card Services Client structure:
Offset Size Description (Table 0618)
00h WORD PCMCIA socket number
02h WORD client attributes
Format of Cards Services Client Information:
Offset Size Description (Table 0619)
00h WORD maximum length of data in bytes (180)
02h WORD (ret) length of returned data
04h WORD attributes (see #0620)
06h WORD revision level (BCD)
08h WORD Card Services level (BCD)
0Ah WORD revision date (DOS packed date format) (see #1318)
0Ch WORD offset to name
0Eh WORD length of name
10h WORD offset to vendor string
12h WORD length of vendor string
14h 80 BYTEs buffer for name
64h 80 BYTEs buffer for vendor string
SeeAlso: #0617,#0621
Bitfields for Card Services client attributes:
Bit(s) Description (Table 0620)
0 memory client
1 MTD client
2 I/O client
3 all clients can share this card
4 only one client can use this card at a time
SeeAlso: #0619
Format of Card Services configuration information:
Offset Size Description (Table 0621)
00h WORD socket (usually 0000h)
02h WORD attributes (see #0622)
04h BYTE Vcc value
05h BYTE Vpp1 value
06h BYTE Vpp2 value
07h BYTE interface type (see #0623)
08h DWORD base address of configuration registers
0Ch BYTE card's Status register setting (if present)
0Dh BYTE card's Pin register setting (if present)
0Eh BYTE card's Socket/Copy register setting (if present)
0Fh BYTE card's Option register setting (if present)
10h BYTE bitmap of present card configuration registers
11h BYTE first device type
12h BYTE function code
13h BYTE SysInit mask
14h WORD manufacturer code
16h WORD manufacturer information
18h BYTE valie card register values
19h BYTE IRQ number assigned to PC Card
1Ah WORD IRQ attributes (see #0625)
1Ch WORD base port address (for I/O range 1)
1Eh BYTE number of contiguous ports (for I/O range 1)
1Fh BYTE bitmap of port attributes (for I/O range 1) (see #0626)
20h WORD base port address (for I/O range 2)
22h BYTE number of contiguous ports (for I/O range 2)
23h BYTE bitmap of port attributes (for I/O range 2) (see #0626)
24h BYTE number of I/O address lines decoded (16-bit PC Card only)
25h BYTE extended status register setting (if present)
26h BYTE bitmap of DMA attributes (see #0627)
(note: value at call is used to set!)
27h BYTE assigned DMA channel
28h BYTE number of I/O windows in use on logical socket
29h BYTE number of memory windows in use on logical socket
SeeAlso: #0620,#0641
Bitfields for Card Services Configuration attributes:
Bit(s) Description (Table 0622)
0 exclusive
1 IRQ active
2 CardBus card
3-5 reserved (0)
6 DMA channel is active
7 reserved (0)
8 valid client
9 overwrite voltage value
10-15 reserved (0)
SeeAlso: #0621
Bitfields for Card Services Configuration interface type:
Bit(s) Description (Table 0623)
0 memory interface
1 I/O and memory interface
2 CardBus interface
3-7 reserved (0)
SeeAlso: #0621
Bitfields for Card Services Configuration registers:
Bit(s) Description (Table 0624)
0 option value is value
1 status value
2 pin-replacement value
3 copy value
4 extended status value
5-7 reserved (0)
SeeAlso: #0621
Bitfields for Card Services Configuration IRQ attributes:
Bit(s) Description (Table 0625)
1-0 sharing
00 no sharing
01 time-multiplex sharing
10 dynamic sharing
11 reserved
2 force pulse mode
3 first used together
4-7 reserved
8 pulse IRQ has been assigned
9-15 reserved
SeeAlso: #0621,#0626,#0627,#0632,#0635
Bitfields for Card Services Configuration Port attributes:
Bit(s) Description (Table 0626)
0 shared I/O ports
1 "CS_FirstCommonUsedCard"
2 force alias access
3 =1 sixteen-bit I/O
=0 eight-bit I/O
7-4 reserved (0)
SeeAlso: #0621,#0625,#0627,#0634
Bitfields for Card Services Configuration DMA attributes:
Bit(s) Description (Table 0627)
1-0 sharing mode
00 no sharing
01 time-multiplex sharing
10 dynamic sharing
11 reserved
3-2 DMA request signal
00 reserved
01 DMARQ uses pin SPKR#
10 DMARQ uses pin IOIS16#
11 DMARQ uses pin INPACK#
4 DMA size
0 eight bits
1 sixteen bits
7-5 reserved (0)
SeeAlso: #0621,#0625,#0626
Format of Card Services Tuple information:
Offset Size Description (Table 0628)
00h WORD logical socket number
02h WORD attributes
bit 0: return Link tuples
04h BYTE code value of desired tuple
05h BYTE reserved (0)
06h WORD (ret) TupleFlags
08h DWORD (ret) -> Card Services Link State Information
0Ch DWORD (ret) -> Card Services CIS State Information
10h BYTE (ret) code for tuple
11h BYTE (ret) link value for tuple
SeeAlso: #0629
Format of Card Services GetTupleData record:
Offset Size Description (Table 0629)
00h WORD logical socket
02h WORD attributes
04h BYTE code value of desired tuple
05h BYTE offset into tuple from link byte
06h WORD flags
08h DWORD -> Link
0Ch DWORD -> CIS
10h WORD (call) maximum amount of data to return (0004h)
12h WORD (ret) amount of data returned
14h DWORD (ret) tuple data
SeeAlso: #0628
Format of Card Services Client Registration record:
Offset Size Description (Table 0630)
00h WORD attributes
02h WORD event mask
04h WORD client data (passed to client event handler in DI)
--- 16-bit code ---
06h WORD client data selector (passed to event handler in DS)
08h WORD client data offset (passed to event handler in SI)
0Ah WORD reserved
--- 32-bit code ---
06h WORD reserved
08h DWORD client data offset (passed to event handler in ESI)
------
0Ch WORD expected Card Services version (0210h for v2.10)
Bitfields for Card Services client event codes:
Bit(s) Description (Table 0631)
0 change in write-protect status
1 change in card lock
2 ejection request
3 insertion request
4 battery is dead
5 battery low
6 change in Ready
7 change in Card Detect
8 power management change
9 reset
10 Socket Services updated
11 extended status change
SeeAlso: #0630
Format of Card Services ReleaseIRQ record:
Offset Size Description (Table 0632)
00h WORD logical socket number
02h WORD attributes (see #0625)
04h BYTE assigned IRQ number to be released
Format of Card Services Release Configuration record:
Offset Size Description (Table 0633)
00h WORD logical socket number
Format of Card Services Request I/O record:
Offset Size Description (Table 0634)
00h WORD logical socket number
02h WORD base port 1
04h BYTE size of port range 1
05h BYTE attributes for port range 1 (see #0626)
06h WORD base port 2
08h BYTE size of port range 2
09h BYTE attributes for port range 2 (see #0626)
0Ah BYTE number of address lines (typically 16)
SeeAlso: #0635,#0633
Format of Card Services Request IRQ record:
Offset Size Description (Table 0635)
00h WORD logical socket number
02h WORD attributes (see #0625)
04h BYTE (ret) assigned IRQ number, if successful
05h BYTE IRQ info (see #0636)
06h WORD bitmap of available IRQs (bit 0 = IRQ0, etc.)
(only if bit 4 of IRQ info set)
SeeAlso: #0634,#0633
Bitfields for Card Services Request IRQ info flags:
Bit(s) Description (Table 0636)
7 IRQ is shared
6 pulse (edge-triggered) interrupt
5 level interrupt
4 use IRQ bitmap
--- bit 4 set ---
3 vendor-specific interrupt
2 bus error
1 I/O check interrupt
0 NMI
--- bit 4 clear ---
3-0 IRQ number
SeeAlso: #0635
Format of Card Services Request Window record:
Offset Size Description (Table 0637)
00h WORD logical socket number
02h WORD attributes (see #0638)
04h DWORD system base adress
08h DWORD size of memory window
0Ch BYTE additional info
if attributes bit ??? is set, this is the address-lines field
otherwise, this is the access-speed field (see #0639)
Bitfields for Card Services Request Window attributes:
Bit(s) Description (Table 0638)
0 I/O window instead of memory window
1 attribute memory instead of normal memory (16-bit PC Cards only)
2 window enabled
3 16-bit data path instead of 8-bit path (16-bit PC Cards only, v2.10+)
(ignored if bit 9 set)
4 size is given in 16K pages (invalid for CardBus PC Cards)
5 shared (invalid for CardBus)
6 first shared (invalid for CardBus)
7 "CS_BindingSpecific" (memory window only)
8 card offsets are window-size granular (16-bit PC Card memory window)
9 32-bit data path (CardBus only)
10 reserved (0)
12-11 prefetch/cache
00 neither prefetchable nor cacheable
01 prefetchable but not cacheable
10 prefetchable and cachable
11 reserved
15-13 decoded base address register number (CardBus only)
SeeAlso: #0637,#0639
Bitfields for Card Services Request Window access-speed:
Bit(s) Description (Table 0639)
6-3 mantissa
0000 use device speed code
0001 1.0
0010 1.2
0011 1.2 ???
0100 1.5
0101 2.0
0110 2.5
0111 3.0
1000 3.5
1001 4.0
1010 4.5
1011 5.0
1100 5.5
1101 6.0
1110 7.0
1111 8.0
--- if mantissa==0 ---
2-0 device speed code
000 reserved
001 250 ns
010 200 ns
011 150 ns
100 100 ns
101-111 reserved
--- if mantissa<>0 ---
2-0 speed exponent
000 1 ns
001 10 ns
010 100 ns
011 1 us
100 10 us
101 100 us
110 1 ms
111 10 ms
SeeAlso: #0637,#0638
Format of Card Services Request/Release Exclusive Access record:
Offset Size Description (Table 0640)
00h WORD logical socket number
02h WORD attributes (currently all reserved, must be 0000h)
Format of Card Services Request Configuration record:
Offset Size Description (Table 0641)
00h WORD socket (usually 0000h)
02h WORD attributes (see #0622)
04h BYTE Vcc value
05h BYTE Vpp1 value
06h BYTE Vpp2 value
07h BYTE interface type (see #0623)
08h DWORD base address of configuration registers
0Ch BYTE card's Status register setting (if present)
0Dh BYTE card's Pin register setting (if present)
0Eh BYTE card's Socket/Copy register setting (if present)
0Fh BYTE card's Option register setting (if present)
10h BYTE bitmap of present card configuration registers
11h BYTE extended status register setting (if present)
SeeAlso: #0621
--------X-1AB000-----------------------------
INT 1A U - HP 100LX/200LX - PCMCIA - ???
AX = B000h
ES:BX -> parameter block ???
Return: CF clear if ???
CF set if ???
Note: called by HP 100LX/200LX PCMCIA client CIC100.EXE
--------d-1AB001CX4D52-----------------------
INT 1A - Microsoft Real-Time Compression Interface (MRCI) - ROM-BASED SERVER
AX = B001h
CX = 4D52h ("MR")
DX = 4349h ("CI")
Return: CX = 4943h ("IC") if installed
DX = 524Dh ("RM") if installed
ES:DI -> MRCINFO structure (see #0642)
Note: this call is functionally identical to INT 2F/AX=4A12h, which should
be called first, as this call is used for the first, ROM-based
MRCI server, while the other call is used for RAM-based servers
which may be partially or entirely replacing a prior server
SeeAlso: INT 2F/AX=4A12h
Format of MRCINFO structure:
Offset Size Description (Table 0642)
00h 4 BYTEs vendor signature
"MSFT" Microsoft
04h WORD server version (high=major)
06h WORD MRCI specification version
08h DWORD address of server entry point (see #0644)
0Ch WORD bit flags: server capabilities (see #0643)
0Eh WORD bit flags: hardware assisted capabilities (see #0643)
10h WORD maximum block size supported by server (at least 8192 bytes)
Bitfields for MRCI capabilities:
Bit(s) Description (Table 0643)
0 standard compress
1 standard decompress
2 update compress
3 MaxCompress (not present in initial public release)
4 reserved
5 incremental decompress
6 MRCI 2.0 standard compress
7 MRCI 2.0 standard decompress
8-14 reserved
15 this structure is in ROM and can't be modified
(server capabilities only)
(Table 0644)
Call MRCI entry point with:
DS:SI -> MRCREQUEST structure (see #0645)
CX = type of client (0000h application, 0001h file system)
AX = operation
0001h perform standard compression
0002h perform standard decompression
0004h perform update compression
0008h perform MaxCompress
0020h perform incremental decompression
0040h perform MRCI 2.0 standard compression
0080h perform MRCI 2.0 standard decompression
AX = FFFFh clear flags
BX = bitmask of flags to clear (set bits in BX are flags to clear)
Return: AX = status
0000h successful
0001h invalid function
0002h server busy, try again
0003h destination buffer too small
0004h incompressible data
0005h bad compressed data format
BP destroyed (MS-DOS 6.2)
Note: MRCI driver may chain to a previous driver
Format of MRCREQUEST structure:
Offset Size Description (Table 0645)
00h DWORD pointer to source buffer
04h WORD size of source buffer (0000h = 64K)
06h WORD (UpdateCompress only)
(call) offset in source buffer of beginning of changed data
(ret) offset in destination buffer of beginning of changed
compressed data
08h DWORD pointer to destination buffer
must contain original compressed data for UpdateCompress
0Ch WORD size of destination buffer (0000h = 64K)
any compression: size of buffer for compressed data
standard decompression: number of bytes to be decompressed
incremental decompression: number of byte to decompress now
(ret) actual size of resulting data
0Eh WORD client compressed data storage allocation size
10h DWORD incremental decompression state data
set to 00000000h before first incremental decompression call
Notes: the source and destination buffers may not overlap
the source and destination buffer sizes should normally be the same
application should not update the contents of the MRCREQUEST structure
between incremental decompression calls
--------X-1AB101-----------------------------
INT 1A - Intel PCI BIOS v2.0c+ - INSTALLATION CHECK
AX = B101h
EDI = 00000000h
Return: AH = 00h if installed
CF clear
EDX = 20494350h (' ICP')
EDI = physical address of protected-mode entry point (see #0648)
AL = PCI hardware characteristics (see #0647)
BH = PCI interface level major version (BCD)
BL = PCI interface level minor version (BCD)
CL = number of last PCI bus in system
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
some BIOSes do not change EDI, so applications looking for the
protected-mode entry point should set EDI to 00000000h before
calling this function
SeeAlso: AX=B181h
(Table 0646)
Values for PCI BIOS v2.0c+ status codes:
00h successful
81h unsupported function
83h bad vendor ID
86h device not found
87h bad PCI register number
Bitfields for PCI hardware characteristics:
Bit(s) Description (Table 0647)
0 configuration space access mechanism 1 supported
1 configuration space access mechanism 2 supported
2-3 reserved
4 Special Cycle generation mechanism 1 supported
5 Special Cycle generation mechanism 2 supported
6-7 reserved
(Table 0648)
Call protected-mode entry point with:
registers as for real/V86-mode INT call
CS = ring 0 descriptor with access to full address space
Return: as for real/V86-mode call
--------X-1AB102-----------------------------
INT 1A - Intel PCI BIOS v2.0c+ - FIND PCI DEVICE
AX = B102h
CX = device ID (see #0652,#0658,#0659,#0785,#0787)
DX = vendor ID (see #0649)
SI = device index (0-n)
Return: CF clear if successful
CF set on error
AH = status (00h,83h,86h) (see #0646)
00h successful
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 func)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
device ID FFFFh may be reserved as a wildcard in future implementations
the meanings of BL and BH on return were exchanged between the initial
drafts of the specification and final implementation
all devices sharing a single vendor ID and device ID may be enumerated
by incrementing SI from 0 until error 86h is returned
SeeAlso: AX=B182h
(Table 0649)
Values for PCI vendor ID:
003Dh Martin-Marietta Corporation
0E11h Compaq (see #0650)
1000h Symbios Logic Inc (formerly NCR) (see #0651)
1002h ATI (see #0652)
1003h ULSI Systems
1004h VLSI Technologies (see #0653)
1005h Avance Logics (ADL) (see #0654)
1006h Reply Group
1007h Netframe Systems Inc.
1008h Epson
100Ah Phoenix Technologies
100Bh National Semiconductor (see #0655)
100Ch Tseng Labs (see #0656) (also ID 10BEh)
100Dh AST Research
100Eh Weitek (see #0657)
1010h Video Logic Ltd
1011h DEC (see #0658)
1012h Micronics Computers
1013h Cirrus Logic (see #0659,#0028)
1014h IBM (see #0660)
1015h LSI Logic Corp. of Canada
1016h ICL Personal Systems
1017h SPEA Software AG
1018h Unisys
1019h EliteGroup Computer Sys
101Ah NCR/AT&T GIS
101Bh Vitesse Semiconductor
101Ch Western Digital (see #0661)
101Eh AMI (see #0662)
101Fh Picturetel
1020h Hitachi Computer Electronics
1021h Oki Electric Industry
1022h Advanced Micro Devices (see #0663)
1023h Trident Microsystems (see #0664)
1024h Zenith Data Systems
1025h Acer
1028h Dell Computer Corporation
1029h Siemens Nixdorf
102Ah LSI Logic, Headland Division (see #0665)
102Bh Matrox (see #0666)
102Ch Chips & Technologies (see #0667)
102Dh Wyse Technologies
102Eh Olivetti Advanced Technology
102Fh Toshiba America (see #0668)
1030h TMC Research
1031h Miro / Micro Computer Products AG (see #0669)
1032h Compaq
1033h NEC Corporation (see #0670)
1034h Burndy Corporation
1035h Computers and Communications Research Lab
1036h Future Domain (see #0671)
1037h Hitachi Micro Systems
1038h AMP Incorporated
1039h Silicon Integrated System (SIS) (see #0672)
103Ah Seiko Epson Corporation
103Bh Tatung Corp. of America
103Ch Hewlett-Packard (see #0673)
103Eh Solliday
103Fh Logic Modeling
1040h Kubota Pacific
1041h Computrend
1042h PC Technology (see #0674,#0890) (see also PORT 03F0h"PCTech")
1043h Asustek
1044h Distributed Processing Technology (DPT) (see #0675)
1045h OPTi (see #0676)
1046h IPC Corporation, Ltd.
1047h Genoa Systems Corp.
1048h Elsa GmbH
1049h Fountain Technology
104Ah SGS Thomson Microelectric (see #0677)
104Bh BusLogic (see #0678)
104Ch Texas Instruments (see #0679)
104Dh Sony Corporation
104Eh Oak Technology (see #0680)
104Fh Co-Time Computer Ltd.
1050h Winbond (see #0681)
1051h Anigma Corp.
1052h Young Micro Systems
1054h Hitachi, Ltd. (see #0682)
1055h EFAR Microsystems (see #0683)
1056h ICL
1057h Motorola (see #0684)
1058h Electronics and Telecommunications Research
1059h Teknor Microsystems
105Ah Promise Technology (see #0685)
105Bh Foxconn International
105Ch Wipro Infotech Ltd.
105Dh Number 9 Computer Company (see #0686)
105Eh VTech Engineering Canada, Ltd.
105Fh Infotronic America, Inc.
1060h United Microelectronics (UMC) (see #0687)
1061h 8x8 (X Tech) (see #0688)
1062h Maspar Computer Copr.
1063h Ocean Office Automation
1064h Alcatel Cit
1065h Texas Microsystems
1066h PicoPower Technology (see #0689)
1067h Mitsubishi Electronics
1068h Diversified Technology
1069h Mylex Corporation (see #0690)
106Ah Aten Research
106Bh Apple Computer
106Ch Hyundai Electronics America
106Dh Sequent
106Eh DFI Inc.
106Fh City Gate Development, Ltd.
1070h Daewoo Telecom Ltd.
1071h Mitac
1072h GIT Co., Ltd.
1073h Yamaha Corporation (see #0691)
1074h NexGen Microsystems (see #0692)
1075h Advanced Integration Research
1076h Chaintech Computer Co. Ltd.
1077h Q Logic (see #0693)
1078h Cyrix Corporation
1079h I-Bus
107Ah Networth
107Bh Gateway 2000
107Ch Goldstar Co. Ltd.
107Dh Leadtek Research (see #0694)
107Eh Interphase Corporation (see #0695)
107Fh Data Technology Corporation (DTC) (see #0696)
1080h Contaq Microsystems (see #0697)
1081h Supermac Technology
1082h EFA Corporation of America
1083h Forex Computer Corporation (see #0698)
1084h Parador
1085h Tulip Computers Int'l BV
1086h J. Bond Computer Systems
1087h Cache Computer
1088h Microcomputer Systems (M) Son
1089h Data General Corporation
108Ah Bit3 Computer (see #0699)
108Ch Elonex PLC (Oakleigh Systems, Inc)
108Dh Olicom (see #0700)
108Eh Sun Microsystems
108Fh Systemsoft Corporation
1090h Encore Computer Corporation
1091h Intergraph Corporation (see #0701)
1092h Diamond Computer Systems
1093h National Instruments (see #0702)
1094h First International Computers (FIC)
1095h CMD Technology, Inc. (see #0703)
1096h Alacron
1097h Appian Technology (see #0704)
1098h Vision / Quantum Designs Ltd (see #0705)
1099h Samsung Electronics Co. Ltd.
109Ah Packard Bell
109Bh Gemlight Computer Ltd.
109Ch Megachips Corporation
109Dh Zida Technologies
109Eh Brooktree Corporation (see #0706)
109Fh Trigem Computer Inc.
10A0h Meidensha Corporation
10A1h Juko Electronics Inc. Ltd.
10A2h Quantum Corporation
10A3h Everex Systems Inc.
10A4h Globe Manufacturing Sales
10A5h Racal Interlan
10A6h Informtech Industrial Ltd.
10A7h Benchmarq Microelectronics
10A8h Sierra Semiconductor (see #0707)
10A9h Silicon Graphics
10AAh ACC Microelectronics (see #0708)
10ABh Digicom
10ACh Honeywell IASD
10ADh Symphony Labs (see #0709)
10AEh Cornerstone Technology
10AFh Microcomputer Systems
10B0h CardExpert Technology
10B1h Cabletron Systems, Inc.
10B2h Raytheon Company
10B3h Databook Inc
10B4h STB Systems
10B5h PLX Technology (see #0710)
10B6h Madge Networks (see #0711)
10B7h 3com Corporation (see #0712)
10B8h Standard Microsystems Corporation (SMC) (see #0713)
10B9h Acer Labs Inc. (see #0714)
10BAh Mitsubishi Electronics Corp.
10BBh Dapha Electronics Corporation
10BCh Advanced Logic Research Inc. (ALR)
10BDh Surecom Technology (see #0715)
10BEh Tseng Labs International Corp. (see #0656)
10BFh Most Inc.
10C0h Boca Research Inc.
10C1h ICM Corp. Ltd.
10C2h Auspex Systems Inc.
10C3h Samsung Semiconductors
10C4h Award Software International Inc.
10C5h Xerox Corporation
10C6h Rambus Inc.
10C7h Media Vision
10C8h Neomagic Corporation (see #0716)
10C9h DataExpert Corporation
10CAh Fujitsu
10CBh Omron Corporation
10CCh Mentor Arc Inc.
10CDh Advanced System Products (see #0717)
10CEh Radius Inc.
10CFh Citicorp TTI (see #0718)
10D0h Fujitsu Limited
10D1h Future+ Systems
10D2h Molex Incorporated
10D3h Jabil Circuit Inc.
10D4h Hualon Microelectronics
10D5h Autologic Inc.
10D6h Cetia
10D7h BCM Advanced Research
10D8h Advanced Peripherals Labs
10D9h Macronix International Co. Ltd
10DAh Thomas-Conrad Corporation
10DBh Rohm Research
10DCh CERN/ECP/EDU (see #0719)
10DDh Evans & Sutherland (see #0720)
10DEh NVidia Corporation
10DFh Emulex Corporation (see #0721)
10E0h Integrated Micro Solutions (IMS) (see #0722)
10E1h TekRAM Technology Corporation Ltd. (see #0723)
10E2h Aptix Corporation
10E3h Newbridge Microsystems (see #0724)
10E4h Tandem Computers
10E5h Micro Industries
10E6h Gainbery Computer Products Inc.
10E7h Vadem
10E8h Applied Micro Circuits Corp. (see #0725)
10E9h Alps Electronic Corp. Ltd.
10EAh Integraphics Systems (see #0726)
10EBh Artist Graphics (see #0727)
10ECh Realtek Semiconductor (see #0728)
10EDh ASCII Corporation (see #0729)
10EEh Xilinx Corporation
10EFh Racore Computer Products
10F0h Peritek Corporation
10F1h Tyan Computer
10F2h Achme Computer Inc.
10F3h Alaris Inc.
10F4h S-MOS Systems
10F5h NKK Corporation (see #0730)
10F6h Creative Electronic Systems SA
10F7h Matsushita Electric Industrial Corp. Ltd.
10F8h Altos India Ltd.
10F9h PC Direct
10FAh Truevision (see #0731)
10FBh Thesys Microelectronics
10FCh I/O Data Device Inc.
10FDh Soyo Technology Corp. Ltd.
10FEh Fast Electronic GmbH
10FFh N-Cube
1100h Jazz Multimedia
1101h Initio Corporation (see #0732)
1102h Creative Labs
1103h Triones Technologies Inc.
1104h Rasterops
1105h Sigma Designs, Inc.
1106h VIA Technologies (see #0733)
1107h Stratus Computer
1108h Proteon Inc. (see #0734)
1109h Cogent Data Technologies (see #0735)
110Ah Siemens AG / Siemens Nixdorf AG (see #0736)
110Bh Xenon Microsystems
110Ch Mini-Max Technology Inc.
110Dh ZNyX Corporation
110Eh CPU Technology
110Fh Ross Technology
1110h Powerhouse Systems
1111h Santa Cruz Operation (SCO)
1112h Rockwell / RNS division of Meret Communications Inc. (see #0737)
1113h Accton Technology Corporation
1114h Atmel Corporation
1115h DuPont Pixel Systems
1116h Data Translation
1117h Datacube Inc. (see #0738)
1118h Berg Electronics
1119h Vortex Computersysteme GmbH (see #0739)
111Ah Efficient Networks, Inc. (see #0740)
111Bh Teledyne Electronic Systems
111Ch Tricord Systems, Inc.
111Dh Integrated Device Technology
111Eh Eldec Corporation
111Fh Precision Digital Images
1120h EMC Corporation
1121h Zilog
1122h Multi-tech Systems, Inc.
1124h Leutron Vision AG
1125h Eurocore
1126h Vigra
1127h FORE Systems (see #0741)
1128h ???
1129h Firmworks
112Ah Hermes Electronics Co.
112Bh Linotype - Hell AG
112Dh Ravicad
112Eh Infomedia MicroElectronics Inc (see #0742)
112Fh Imaging Technology (see #0743)
1130h Computervision
1131h Philips Semiconductors
1132h Mitel Corp
1133h Eicon Technology Corporation
1134h Mercury Computer Systems Inc (see #0744)
1135h Fuji Xerox Co Ltd (see #0745)
1136h Momentum Data Systems
1137h Cisco Systems Inc
1138h Ziatech Corporation (see #0746)
1139h Dynamic Pictures Inc (see #0747)
113Ah FWB Inc
113Ch Cyclone Microsystems (PLX) (see #0748)
113Dh Leading Edge Products Inc
113Eh Sanyo Electric Co
113Fh Equinox Systems
1140h Intervoice Inc
1141h Crest Microsystem Inc (see #0749)
1142h Alliance Semiconductor Corp (see #0750)
1143h Netpower, Inc.
1144h Cincinnati Milacron (see #0751)
1145h Workbit Corp
1146h Force Computers
1147h Interface Corp.
1148h Schneider & Koch Co. (see #0752)
1149h Win System Corporation
114Ah VMIC (see #0753)
114Bh Canopus Co.
114Ch Annabooks
114Dh IC Corporation
114Eh Nikon Systems Inc
114Fh Digi International / Stargate (see #0754)
1150h Thinking Machines Corp.
1151h JAE Electronics Inc.
1152h Megatek
1153h Land Win Electronic Corp.
1154h Melco Inc.
1155h Pine Technology Ltd.
1156h Periscope Engineering
1157h Avsys Corporation
1158h Voarx R&D Inc. (see #0755)
1159h MuTech (see #0756)
115Ah Harleguin Ltd.
115Bh Parallax Graphics
115Ch ???
115Dh Xircom
115Eh Peer Protocols Inc.
115Fh ???
1160h Megasoft Inc.
1161h PFU Ltd. (see #0757)
1162h OA Laboratory Co Ltd.
1163h Creative Labs (see #0758)
1164h Advanced Peripherals Tech
1165h Imagraph Corporation (see #0759)
1166h Pequr Technology Inc.
1167h Mutoh Industries, Inc.
1168h Thine Electronics Inc
1169h ???
116Ah Polaris Communications
116Bh Connectware Inc
116Ch ???
116Dh ???
116Eh ???
116Fh Workstation Technology
1170h Inventec Corporation
1171h Loughborough Sound Images
1172h Altera Corporation
1173h Adobe Systems
1174h Bridgeport Machines
1175h Mitron Computer Inc.
1176h SBE
1177h Silicon Engineering
1178h Alfa Inc (see #0760)
1179h Toshiba America Info Systems
117Ah A-Trend Technology
117Bh ???
117Ch Atto Technology
117Dh ???
117Eh T/R Systems
117Fh ???
1180h Ricoh Co Ltd
1181h Telmatics International
1182h ???
1183h Fujikura Ltd
1184h Forks Inc
1185h Dataworld
1186h D-Link System Inc
1187h Advanced Technology Laboratories
1188h Shima Seiki Manufacturing Ltd.
1189h Matsushita Electronics (see #0761)
118Ah Hilevel Technology
118Bh ???
118Ch Corollary Inc (see #0762)
118Dh BitFlow Inc (see #0763)
118Eh Hermstedt GmbH
118Fh ???
1190h ???
1191h Artop Electric (see #0764)
1192h Densan Co. Ltd
1193h Zeitnet Inc. (see #0765)
1194h Toucan Technology
1195h Ratoc System Inc
1196h Hytec Electronics Ltd
1197h Gage Applied Sciences Inc.
1198h Lambda Systems Inc
1199h Digital Communications Associates Inc,
119Ah Mind Share Inc.
119Bh Omega Micro Inc.
119Ch Information Technology Inst.
119Dh Bug Sapporo Japan
119Eh Fujitsu
119Fh Bull Hn Information Systems
11A0h Convex Computer Corporation
11A1h Hamamatsu Photonics K.K.
11A2h Sierra Research and Technology
11A4h Barco
11A5h MicroUnity Systems Engineering, Inc.
11A6h Pure Data
11A7h Power Computing Corp.
11A9h InnoSys Inc. (see #0766)
11AAh Actel
11ABh Galileo Technology Ltd. (see #0767)
11ACh Canon Information Systems
11ADh Lite-On Communications Inc
11AEh Scitex Corporation Ltd
11AFh Pro-Log Corporation
11B0h V3 Semiconductor Inc. (see #0768)
11B1h Apricot Computers
11B2h Eastman Kodak
11B3h Barr Systems Inc.
11B4h Leitch Technology International
11B5h Radstone Technology Plc
11B6h United Video Corp
11B7h Motorola
11B8h Xpoint Technologies Inc
11B9h Pathlight Technology Inc. (see #0769)
11BAh Videotron Corp
11BBh Pyramid Technology
11BCh Network Peripherals Inc
11BDh Pinnacle Systems Inc.
11BEh International Microcircuits Inc
11C3h NEC Corporation
11C4h Document Technologies Ind.
11C5h Shiva Corporatin
11C7h D.C.M. Data Systems
11C8h Dolphin Interconnect Solutions (see #0770)
11C9h MAGMA
11CAh LSI Systems Inc
11CBh Specialix Research Ltd. (see #0771)
11CCh Michels & Kleberhoff Computer GmbH
11CDh HAL Computer Systems Inc.
11DEh Zoran Corporation
11F8h PMC-Sierra Inc. (see #0772)
11FEh RP ??? (see #0773)
120Eh Cyclades (see #0774)
1220h Ariel Corporation (see #0775)
122Dh Aztech Systems Ltd
1239h The 3DO Company
124Dh Stallion Technologies
1254h Linear Systems Ltd.
125Ch Aurora Technologies, Inc.
1275h Network Appliance
127Ah Rockwell Semiconductor Systems
1296h Kofax Image Products
12C5h Picture Elements, Inc. (see #0776)
1C1Ch Symphony (see #0777)
1DE1h TekRAM (see #0778)
3D3Dh 3DLabs (see #0779)
4005h Avance Logic, Inc. (see #0780)
4B10h Buslogic Inc. (see #0781)
5333h S3 (see also #0782)
5700h Netpower
6374h c't Magazin fuer Computertechnik (see #0783)
8008h Quancom Electronic GmbH (see #0784)
8086h Intel (see also #0785)
8800h Trigem Computer (see #0786)
8E0Eh Computone Corporation
9004h Adaptec (see #0787)
907Fh Atronics (see #0788)
EDD8h Ark Logic Inc (see #0789)
SeeAlso: #0790
(Table 0650)
Values for Compaq PCI device code:
0001h EISA Bridge
0002h ISA Bridge
1000h Triflex/PCI CPU Bridge
2000h Triflex/PCI CPU Bridge
3032h QVision
3033h QVision 1280/p
3034h QVision 1280
4000h Triflex/PCI CPU Bridge
F130h ThunderLAN
SeeAlso: #0649
(Table 0651)
Values for Symbios Logic (formerly NCR) PCI device code:
0001h PCI revision ID:
00-0Fh 53C810 (fast SCSI)
10-1Fh 53C810A (fast SCSI)
20-2Fh 53C810ALV (fast SCSI)
0002h 53C820 (fast wide SCSI)
0003h PCI revision ID:
00-0Fh 53C825 (fast wide SCSI)
10-1Fh 53C825A (Ultra wide SCSI)
0004h 53C815 (fast SCSI)
0005h 53C810AP (fast SCSI)
0006h PCI revision ID:
00-0Fh 53C860 (Ultra SCSI)
10-1Fh 53C860LV (Ultra SCSI)
000Fh 53C875 (Ultra wide SCSI)
SeeAlso: #0649
(Table 0652)
Values for ATI PCI device code:
4158h 68800AX (Mach32)
4354h 215CT222
4358h 210888CX
4758h 210888GX (Mach64)
SeeAlso: #0649
(Table 0653)
Values for VLSI Technologies PCI device code:
0005h 82C592 CPU Bridge
0006h 82C593 ISA Bridge
0007h 82C594 Wildcat System Ctrlr
0008h VL82C597 Wildcat ISA Bridge
0009h 82C597
000Ch 82C541
000Dh 82C543
0101h 82C532
0102h 82C534
0104h 82C535
0105h 82C147
0200h 82C975 RISC GUI Accelerator
0280h 82C925 RISC GUI Accelerator
SeeAlso: #0649
(Table 0654)
Values for Avance Logic, Inc. (Avance Logics) PCI device code:
2301h ALG2301 GUI accelerator
2302h ALG2302 GUI accelerator
SeeAlso: #0649,INT 10/AX=4F70h
(Table 0655)
Values for National Semiconductor PCI device code:
0001h DP83810 Ethernet
D001h NS87410 EIDE controller
SeeAlso: #0649
(Table 0656)
Values for Tseng Labs PCI device code:
3202h ET4000/W32p-2
3205h ET4000/W32p-B
3206h ET4000/W32p-C
3207h ET4000/W32p-D
3208h ET6000
SeeAlso: #0649
(Table 0657)
Values for Weitek PCI device code:
9000h Power9000???
9001h Power9001
9100h Power9100
SeeAlso: #0649
(Table 0658)
Values for DEC PCI device code:
0001h DC21050 DEC BRD PCI-PCI bridge
0002h DC21040 Tulip
0009h DC21140 Tulip Fast
000Fh DEFPA FDDI
0014h DC21041 Tulip Plus
0016h DGLPB ATM
0019h DC21143 PCI/Cardbus Ethernet
0024h 21151 PCI-PCI Bridge
SeeAlso: #0649
(Table 0659)
Values for Cirrus Logic PCI device code:
00A0h Cirrus 5430
00A4h Cirrus 5434-4
00A8h Cirrus 5434-8
00A8h Cirrus 5434-8
00ACh Cirrus 5436
00B8h Cirrus GD5446
1100h Cirrus 6729
1200h Cirrus 7542
1202h Cirrus 7543
1204h Cirrus 7541
SeeAlso: #0649
(Table 0660)
Values for IBM PCI device code:
0002h MCA Bridge
0005h Alta Lite CPU Bridge
0007h Alta MP CPU Bridge
000Ah ISA Bridge
0017h CPU Bridge
0018h Auto LANStreamer
001Bh GXT-150P Graphics Adapter
001Dh 82G2675
0020h MCA Bridge
0022h PCI-PCI Bridge
0036h Miami/PCI 32-bit LocalBus Bridge
0047h ???
0048h ???
004Ah ???
004Bh ???
004Ch ???
004Dh ???
004Eh ???
004Fh ???
0050h ???
0051h ???
0052h ???
0053h ???
0055h ???
0059h ???
005Ah ???
005Bh ???
SeeAlso: #0649
(Table 0661)
Values for Western Digital PCI device code:
0193h WD33C193A 8-bit SCSI
0196h SCSI Bridge
0197h WD33C197A 16-bit SCSI
0296h WD33C296A 16-bit SCSI
3193h WD7193 Fast SCSI-II
3197h WD7197 Fast-Wide SCSI-II
3296h WD7197
4296h WD33C296 Wide Fast-20 Bridge
C24Ah 90C?
SeeAlso: #0649
(Table 0662)
Values for AMI PCI device code:
9010h MegaRAID
9030h ??? IDE Controller
9031h ??? IDE Controller
9032h ??? IDE/SCSI Controller
9033h ??? SCSI Controller
9040h ??? Multimedia card
SeeAlso: #0649
(Table 0663)
Values for Advanced Micro Devices (AMD) PCI device code:
2000h Am79C970 (Lance), Am79C971 (PCnet-FAST, PCI revision ID is 2xh)
2020h Am53c974 SCSI
2040h Am79C974 Ethernet/SCSI
SeeAlso: #0649
(Table 0664)
Values for Trident PCI device code:
9320h ??? 32-bit GUI accelerator
9350h ??? 32-bit GUI accelerator
9360h ??? Flat-Panel controller
9420h Trident 9420
9440h Trident 9440
9460h Trident 9460
9660h Trident 9660
9682h ??? Multimedia accelerator
SeeAlso: #0649
(Table 0665)
Values for LSI Logic PCI device code:
0000h Hydra (Pentium chipset)
0010h Aspen (486 chipset)
SeeAlso: #0649
(Table 0666)
Values for Matrox PCI device code:
0518h MGA-II (Ultima)
0519h Millenium (2064W)
0D10h MGA-I (Impression)
SeeAlso: #0649
(Table 0667)
Values for Chips & Technologies PCI device code:
00B8h C&T 64310 GUI Accelerator
00D0h C&T 65545 Flat Panel/CRT VGA
00D8h F65545
00DCh F65548
SeeAlso: #0649
(Table 0668)
Values for Toshiba America PCI device code:
0009h r4x00 Bridge
SeeAlso: #0649
(Table 0669)
Values for Miro / Micro Computer Products AG PCI device code:
5601h 36050
5607h video in/out w/ MPEG
SeeAlso: #0649
(Table 0670)
Values for NEC Corporation PCI device code:
0001h PCI-to-486 Bridge
0002h PCI-to-VL98 Bridge
0003h ATM LAN controller
0004h r4000PCI Bridge
0005h PCI-to-486 Bridge
0006h GUI Accelerator
0007h PCI-to-UXbus Bridge
0008h GUI Accelerator
0009h PC-98 Graphics Controller
SeeAlso: #0649
(Table 0671)
Values for Future Domain PCI device code:
0000h TMC-36C70 / TMC-18C30 (fast SCSI)
SeeAlso: #0649
(Table 0672)
Values for Silicon Integrated System (SIS) PCI device code:
0001h SiS6201
0002h SiS6202
0006h SI 85C501/2
0008h SI 85C503/5513
0205h SiS6205
0406h SiS501
0496h SiS496
0596h Pentium chipset
0601h SiS601
3602h IDE controller
5401h 486 chipset
5511h SiS5511 Pentium chipset
5513h SiS5513 EIDE controller
5581h Pentium chipset
5582h ISA Bridge
5596h Pentium chipset
6204h video decoder/MPEG
6205h PCI VGA controller
SeeAlso: #0649
(Table 0673)
Values for Hewlett-Packard PCI device code:
1030h J2585A
2910h E2910A PCI-bus exerciser
2925h E2925A PCI-bus exerciser
SeeAlso: #0649
(Table 0674)
Values for PC Technology PCI device code:
1000h RZ1000
1001h RZ1001
SeeAlso: #0649
(Table 0675)
Values for Distributed Processing Technology (DPT) PCI device code:
A400h 2124A/9X EATA SmartCache/RAID SCSI
SeeAlso: #0649
(Table 0676)
Values for OPTi PCI device code:
C557h 82C557
C558h 82C558
C621h 82C621
C822h 82C822
SeeAlso: #0649
(Table 0677)
Values for SGS Thomson Microelectronics PCI device code:
0008h SGS 2000
0009h SGS 1764
SeeAlso: #0649
(Table 0678)
Values for BusLogic PCI device code:
0140h MultiMaster NC
1040h MultiMaster
8130h FlashPoint
SeeAlso: #0649
(Table 0679)
Values for Texas Instruments PCI device code:
0500h 100 Mbit LAN controller
0508h tms380c2x
1000h TI PCI Eagle i/f
A001h TDC1570 64-bit ATM sar
A100h TDC1561 32-bit ATM sar
AC10h PCI1050 PCCard controller
AC11h PCI1053 PCCard controller
AC12h PCI1130 PCCard controller
SeeAlso: #0649
(Table 0680)
Values for Oak Technology PCI device code:
0107h OTI-0107 (Spitfire)
SeeAlso: #0649
(Table 0681)
Values for Winbond PCI device code:
0000h ??? Ethernet controller
0001h 83769
0105h 82C105
SeeAlso: #0649
(Table 0682)
Values for Hitachi Ltd. PCI device code:
0001h PCI Bridge
0002h PCI-bus controller
SeeAlso: #0649
(Table 0683)
Values for EFAR Microsystems PCI device code:
0810h 486 Bridge
0922h Pentium/P54C Bridge
0926h ISA Bridge
SeeAlso: #0649
(Table 0684)
Values for Motorola PCI device code:
0001h MPC105 PowerPC chipset
SeeAlso: #0649
(Table 0685)
Values for Promise Technology PCI device code:
5300h Promise 5300
SeeAlso: #0649
(Table 0686)
Values for Number 9 Computer Company PCI device code:
2309h Imagine 128
2339h Imagine 128-2
SeeAlso: #0649
(Table 0687)
Values for United Microelectronics (UMC) PCI device code:
0001h UM82C881 (486 chipset)
0002h UM82C776 (ISA Bridge)
0101h UM8673F
0881h UM8881 (486 chipset)
0886h UM8886F (ISA Bridge)
0891h UM8891A
1001h UM886A (dual IDE controller)
673Ah UM8886BF
8710h UM8710 VGA controller
886Ah UM8886A
8881h UM8881F
8886h UM8886F
8891h UM8891 (Pentium chipset)
9017h UM9017F
E881h UM8881 (486 chipset)
E886h UM8886N
E891h UM8891N
SeeAlso: #0649
(Table 0688)
Values for 8x8 (X Tech) PCI device code:
0001h AGX-016
0002h IIT3204/3501 MPEG decoder
SeeAlso: #0649
(Table 0689)
Values for PicoPower PCI device code:
0000h PT80C826 VL Bridge
SeeAlso: #0649
(Table 0690)
Values for Mylex Corporation PCI device code:
0001h DAC960P Wide SCSI + RAID
SeeAlso: #0649
(Table 0691)
Values for Yamaha Corporation PCI device code:
0001h ?? 3D graphics controller
0002h YGV615 RPA3 3D graphics controller
SeeAlso: #0649
(Table 0692)
Values for NexGen Microsystems PCI device code:
4E78h NexGen 82C501
SeeAlso: #0649
(Table 0693)
Values for Q Logic PCI device code:
1020h ISP1020 Fast-Wide SCSI
1022h ISP1022 Fast-Wide SCSI
SeeAlso: #0649
(Table 0694)
Values for Leadtek Research PCI device code:
0000h LeadTek 805
SeeAlso: #0649
(Table 0695)
Values for Interphase PCI device code:
0001h ATM interface
0002h 100 vg amylan controller
SeeAlso: #0649
(Table 0696)
Values for Data Technology Corporation (DTC) PCI device code:
0802h SL82C105 EIDE Controller
SeeAlso: #0649
(Table 0697)
Values for Contaq Microsystems PCI device code:
0600h Contaq 82C599
SeeAlso: #0649
(Table 0698)
Values for Forex Computer Corporation PCI device code:
0001h FR710 EIDE Controller
0613h ??? Host Bridge
SeeAlso: #0649
(Table 0699)
Values for Bit3 Computer PCI device code:
0001h Model 617 PCI-VME Bus Adapter
SeeAlso: #0649
(Table 0700)
Values for Olicom PCI device code:
0001h ??? Ethernet Controller
SeeAlso: #0649
(Table 0701)
Values for Intergraph Corporation PCI device code:
0020h 3D graphics processor
0021h 3D graphics processor w/texture
0040h 3D graphics frame buffer
0041h 3D graphics frame buffer
0060h proprietary bus bridge
0720h Motion JPEG codec
SeeAlso: #0649
(Table 0702)
Values for National Instruments PCI device code:
C801h PCI-GPIB
SeeAlso: #0649
(Table 0703)
Values for CMD Technology, Inc. PCI device code:
0640h CMD 640
0642h IDE controller with RAID-1
0646h CMD 646 EIDE
0650h PBC0650A Fast SCSI-II
SeeAlso: #0649
(Table 0704)
Values for Appian Technology:
0038h ??? EIDE Controller
SeeAlso: #0649
(Table 0705)
Values for Vision / Quantum Designs Ltd. PCI device code:
0001h QD8500
0002h QD8580
SeeAlso: #0649
(Table 0706)
Values for Brooktree Corporation PCI device code:
0350h BT848 TV/PCI with DMA Push
2115h BtV 2115 Mediastream Controller
2125h BtV 2125 Mediastream Controller
8230h ???
SeeAlso: #0649
(Table 0707)
Values for Sierra Semiconductor PCI device code:
0000h STB 64-bit GUI accelerator
SeeAlso: #0649
(Table 0708)
Values for ACC Microelectronics PCI device code:
0000h ACC 2056
SeeAlso: #0649
(Table 0709)
Values for Symphony Labs PCI device code:
0001h 83769
0103h sl82c103 PCI-IDE Controller
0105h 82C105 bus-master PCI-IDE controller
SeeAlso: #0649
(Table 0710)
Values for PLX Technology PCI device code:
9036h PCI9036 interface chip
9060h PCI9060xx interface chip
SeeAlso: #0649
(Table 0711)
Values for Madge Networks PCI device code:
0001h Smart 16/4 Ringnode
1000h Collage 25 ATM adapter
1001h Collage 155 ATM adapter
SeeAlso: #0649
(Table 0712)
Values for 3com Corporation PCI device code:
5900h 3C590
5950h 3C595TX
5951h 3C595T4
5952h 3C595MII
8811h token ring
9000h 3C900-TPO Fast Etherlink
9001h 3C900-COMBO Fast Etherlink
9050h 3C905-TX Fast Etherlink 10/100
SeeAlso: #0649
(Table 0713)
Values for Standard Microsystems Corporation (SMC) PCI device code:
1000h 37C665 floppy disk controller
1001h 37C922 floppy disk controller
SeeAlso: #0649
(Table 0714)
Values for Acer Labs Inc. PCI device code:
1435h M1435 VL Bridge
1445h ALI M1445 VL bridge + EIDE
1449h ALI M1449 ISA bridge
1451h ALI M1451 Pentium chipset
1461h ALI M1461 P54C chipset
1489h ALI M1489
1511h ALI M1511
1513h ALI M1513
3141h M3141 GUI accelerator VRAM
3143h M3143 GUI accelerator VRAM/DAC
3145h M3145 GUI accelerator VRAM
3147h M3147 GUI accelerator VRAM/DAC
3149h M3149 GUI accelerator VRAM
3151h M3151 GUI accelerator VRAM
5212h M4803
5215h ALI MS4803 EIDE controller
5217h m5217 I/O
5219h m5219 I/O
5235h m5225 I/O
SeeAlso: #0649
(Table 0715)
Values for Surecom Technology PCI device code:
5240h IDE Controller
5241h PCMCIA Bridge
5242h general-purpose controller
5243h Bus controller
5244h Floppy-disk controller
SeeAlso: #0649
(Table 0716)
Values for Neomagic Corporation:
0000h graphics controller
SeeAlso: #0649
(Table 0717)
Values for Advanced System Products PCI device code:
1100h ABP940 revision A??? SCSI
1200h ABP940 revision B??? Fast SCSI-2
1300h Fast-Wide SCSI controller
SeeAlso: #0649
(Table 0718)
Values for Citicorp TTI PCI device code:
2001h mb86605 Wide SCSI-2
SeeAlso: #0649
(Table 0719)
Values for CENR/ECP/EDU PCI device code:
0001h SPSB PMC
0002h SPSB PCI
10DCh ATT 2C15-3 FPGA
SeeAlso: #0649
(Table 0720)
Values for Evans & Sutherland PCI device code:
0001h 3D graphics processor
SeeAlso: #0649
(Table 0721)
Values for Emulex Corporation PCI device code:
1AE5h Fibre Channel Host Adapter
SeeAlso: #0649
(Table 0722)
Values for Integrated Micro Solutions PCI device code:
5026h IMS5026/27/28 VL Bridge
5028h ISA Bridge
8849h IMS 8849
8853h ATM network card
9128h IMS9129 GUI accelerator
SeeAlso: #0649
(Table 0723)
Values for TekRAM Technology Corporation Ltd. PCI device code:
690Ch TekRAM 690c
SeeAlso: #0649
(Table 0724)
Values for Newbridge Microsystems PCI device code:
0000h CA91C042 VMEbus Bridge
SeeAlso: #0649
(Table 0725)
Values for Applied Micro Circuits Corp. PCI device code:
4750h S5933 PCI controller
8043h MyriNet
SeeAlso: #0649
(Table 0726)
Values for Integraphics Systems PCI device code:
1680h 1680
SeeAlso: #0649
(Table 0727)
Values for Artist Graphics PCI device code:
0101h 3GA 64-bit graphics processor
SeeAlso: #0649
(Table 0728)
Values for Realtek Semiconductor PCI device code:
8029h Realtek 8029
SeeAlso: #0649
(Table 0729)
Values for ASCII Corporation PCI device code:
7310h V7310 VGA Video Overlay
SeeAlso: #0649
(Table 0730)
Values for NKK Corporation PCI device code:
A001h NDR4000 NR4600 Bridge
SeeAlso: #0649
(Table 0731)
Values for Truevision PCI device code:
0000h ??? GUI Accelerator
0001h ??? GUI Accelerator
0002h ??? GUI Accelerator
0003h ??? GUI Accelerator
0004h ??? GUI Accelerator
0005h ??? GUI Accelerator
0006h ??? GUI Accelerator
0007h ??? GUI Accelerator
0008h ??? GUI Accelerator
0009h ??? GUI Accelerator
0010h ??? GUI Accelerator
0011h ??? GUI Accelerator
0012h ??? GUI Accelerator
0013h ??? GUI Accelerator
0014h ??? GUI Accelerator
0015h ??? GUI Accelerator
SeeAlso: #0649
(Table 0732)
Values for Initio Corporation PCI device code:
9100h 320P
9400h Fast-Wide SCSI
9700h Fast-Wide SCSI
SeeAlso: #0649
(Table 0733)
Values for VIA Technologies PCI device code:
0505h VIA 82C505
0561h VIA 82C561
0576h VIA 82C576
1000h 82C570MV P54 Controller
1106h 82C570MV ISA Bridge + IDE
1571h VIA 82C416
SeeAlso: #0649
(Table 0734)
Values for Proteon Inc. PCI device code:
0100h p1690plus-AA Token Ring
0101h p1690plus-AB 2-port Token Ring
SeeAlso: #0649
(Table 0735)
Values for Cogent Data Technologies PCI device code:
1400h EM110TX PCI Fast Ethernet
SeeAlso: #0649
(Table 0736)
Values for Siemens Nixdorf PCI device code:
6120h SZB6120 Multimedia Adapter
SeeAlso: #0649
(Table 0737)
Values for Rockwell PCI device code:
2200h FDDI adapter
2300h Fast Ethernet adapter
2340h four-port Fast Ethernet
2400h ATM adapter
SeeAlso: #0649
(Table 0738)
Values for Datacube Inc. PCI device code:
9500h MAX-LC SuperVGA
9501h MAX-LC image processing
SeeAlso: #0649
(Table 0739)
Values for Vortex Computersysteme GmbH PCI device code:
0000h GDT60x0 SCSI RAID
0001h GDT6000B SCSI RAID
0002h GDT6x10 SCSI RAID
0003h GDT6x20 two-channel SCSI RAID
0004h GDT6530 three-channel SCSI RAID
0005h GDT6550 five-channel SCSI RAID
0006h GDT6x17
0007h GDT6x27
0008h GDT6537
0009h GDT6557
000Ah GDT6x15
000Bh GDT6x25
000Ch GDT6535
000Dh GDT6555
SeeAlso: #0649
(Table 0740)
Values for Efficient Networks, Inc. PCI device code:
0000h 155P-MF1 ATM FPGA
0002h ATM ASIC
SeeAlso: #0649
(Table 0741)
Values for FORE Systems PCI device code:
0210h PCA200PC
0300h PCA200E
SeeAlso: #0649
(Table 0742)
Values for Infomedia MicroElectronics PCI device code:
0000h EIDE/HD and IDE/CD-ROM controller
000Bh EIDE/HD and IDE/CD-ROM controller
SeeAlso: #0649
(Table 0743)
Values for Imaging Technology PCI device code:
0000h ICPCI
0001h video frame grabber/processor
SeeAlso: #0649
(Table 0744)
Values for Mercury Computer Systems PCI device code:
0001h Raceway Bridge
SeeAlso: #0649
(Table 0745)
Values for Fuji Xerox Co Ltd. PCI device code:
0001h Printer Controller
SeeAlso: #0649
(Table 0746)
Values for Ziatech Corporation PCI device code:
8905h 8905 STD-32 Bridge
SeeAlso: #0649
(Table 0747)
Values for Dynamic Pictures Inc. PCI device code:
0001h VGA-compatible 3D graphics
SeeAlso: #0649
(Table 0748)
Values for Cyclone Microsystems (PLX Technology???) PCI device code:
0001h PLX 9060
0911h PCI 911 i960Jx Intelligent I/O
0912h PCI 912 i960Cx Intelligent I/O
0913h PCI 913 i960Hx Intelligent I/O
SeeAlso: #0649
(Table 0749)
Values for Crest Microsystem PCI device code:
0001h EIDE/ATAPI super adapter
SeeAlso: #0649
(Table 0750)
Values for Alliance Semiconductor Corp. PCI device code:
3210h Pro Motion 3210
6410h GUI Accelerator
6412h GUI Accelerator
6420h GUI Accelerator
6422h Pro Video
6424h GUI Accelerator
6426h GUI Accelerator
SeeAlso: #0649
(Table 0751)
Values for Cincinnati Milacron PCI device code:
0001h Noservo Controller
SeeAlso: #0649
(Table 0752)
Values for Schneider & Koch Co. PCI device code:
4000h FDDI adapter
SeeAlso: #0649
(Table 0753)
Values for VMIC PCI device code:
7587h VME
SeeAlso: #0649
(Table 0754)
Values for Digi International / Stargate PCI device code:
0003h RightSwitch
SeeAlso: #0649
(Table 0755)
Values for Voarx R&D Inc. PCI device code:
3011h Tokenet/vg 1001/10m anylan
9050h Lanfleet/Truevalue
SeeAlso: #0649
(Table 0756)
Values for MuTech PCI device code:
0001h MV1000
SeeAlso: #0649
(Table 0757)
Values for PFU Ltd. PCI device code:
0001h Host Bridge
SeeAlso: #0649
(Table 0758)
Values for Creative Labs (vendor ID 1163h) PCI device code:
0001h 3D Blaster
SeeAlso: #0649
(Table 0759)
Values for Imagraph Corporation PCI device code:
0001h Motion JPEG record/play w/ audio
SeeAlso: #0649
(Table 0760)
Values for Alfa Inc. PCI device code:
AFA1h Fast Ethernet
SeeAlso: #0649
(Table 0761)
Values for Matsushita Electronics PCI device code:
1592h ???
SeeAlso: #0649
(Table 0762)
Values for Corollary Inc. PCI device code:
0014h PCIB C-bus II to PCI bridge chip
SeeAlso: #0649
(Table 0763)
Values for BitFlow Inc. PCI device code:
0001h Raptor-PCI frame grabber
SeeAlso: #0649
(Table 0764)
Values for Artop Electric PCI device code:
0001h IDE controller
0002h IDE controller
0003h SCSI-2 cache controller
0004h ATP8400 ASIC cache accelerator
8001h SCSI-2 cache controller
8002h SCSI-2 controller
SeeAlso: #0649
(Table 0765)
Values for Zeitnet Inc. PCI device code:
0001h Zeitnet 1221
0002h Zeitnet 1225
SeeAlso: #0649
(Table 0766)
Values for InnoSys Inc. PCI device code:
4240h AMCC S5933Q Intelligent Serial Card
SeeAlso: #0649
(Table 0767)
Values for Galileo Technology PCI device code:
0146h GT-64010 System Controller for R46xx CPU
4801h GT-48001 8-port switched Ethernet ctrlr
SeeAlso: #0649
(Table 0768)
Values for V3 Semiconductor Inc. PCI device code:
0292h V292PBC Am29030/40 Bridge
0960h V96xPBC i960 Bridge
C960h V96DPC i960 dual PCI Bridge
SeeAlso: #0649
(Table 0769)
Values for Pathlight Technology PCI device code:
C0EDh SSA Controller
SeeAlso: #0649
(Table 0770)
Values for Dolphin Interconnect Solutions PCI device code:
0658h PSB PCI-SCI Bridge
SeeAlso: #0649
(Table 0771)
Values for Specialix Research Ltd. PCI device code:
2000h PCI-9050 Target Interface
4000h Specialix XIO (SUPI-1 Target Interface)
8000h Specialix RIO (T255 Bridge)
SeeAlso: #0649
(Table 0772)
Values for PMC-Sierra Inc. PCI device code:
7375h PM7375 LASAR-155 ATM SAR
SeeAlso: #0649
(Table 0773)
Values for RP PCI device code:
0001h RP8OCTA
0002h RP8INTF
0003h RP16INTF
0004h RP32INTF
SeeAlso: #0649
(Table 0774)
Values for Cyclades PCI device code:
0100h Cyclom Y Lo multiport serial card
0101h Cyclom Y Hi
0200h Cyclom Z Lo multiport serial card
0201h Cyclom Z Hi
SeeAlso: #0649
(Table 0775)
Values for Ariel Corporation PCI device code:
1220h AMCC 5933 TMS320C80 DSP/Imaging Board
SeeAlso: #0649
(Table 0776)
Values for Picture Elements PCI device code:
0081h PCIVST PCI Thresholding Engine
SeeAlso: #0649
(Table 0777)
Values for Symphony PCI device code:
0001h Symphony 82C101 IDE controller
SeeAlso: #0649
(Table 0778)
Values for TekRAM PCI device code:
DC29h DC290 / DC290M EIDE controller
SeeAlso: #0649
(Table 0779)
Values for 3DLabs PCI device code:
0004h 3C0SX GUI Accelerator
SeeAlso: #0649
(Table 0780)
Values for Avance Logic, Inc. PCI device code:
2301h AVL2301 GUI Accelerator
2303h AVG2302 GUI Accelerator
SeeAlso: #0649
(Table 0781)
Values for BusLogic Inc. PCI device code:
3080h ??? SCSI-ti
4010h ??? Fast-Wide SCSI-2
SeeAlso: #0649
(Table 0782)
Values for S3 PCI device code:
5631h 86C325 ViRGE 3D GUI Accelerator
8800h Vision 866
8801h Vision 964
8810h S3 Trio32
8811h S3 Trio32, Trio64, or Trio64V+
8812h S3 Trio64UV+
8813h S3 Trio64? v3
888xh S3 868
88Bxh S3 928
88C0h S3 864-1
88C1h S3 864-2
88C2h S3 864-3
88C3h S3 864-4
88D0h S3 964-1
88D1h S3 964-2
88D2h S3 964-3
88D3h S3 964-4
88F0h S3 968
88F1h S3 968-2
88F2h S3 968-3
88F3h S3 968-3
SeeAlso: #0649,#0785
(Table 0783)
Values for c't Magazin für Computer PCI device code:
6773h GPPCI PCI interface
SeeAlso: #0649
(Table 0784)
Values for Quancom Electronic PCI device code:
0010h PCI-WDOG1 Watchdog
0011h PWDOG2 Watchdog2/PCI
SeeAlso: #0649
(Table 0785)
Values for Intel PCI device code:
0482h 82375 EISA
0483h 82424 Cache Controller
0484h 82378/82379 Bus Interface (Mercury/Saturn/Neptune chipsets) (see #0817)
0486h 82425EX/82430
04A3h 82434 (Neptune) (see #0815)
0960h i960 RP Microprocessor/Bridge
1221h 82092AA PCMCIA Bridge
1222h 82092AA IDE Controller
1223h Intel SAA7116
1226h 82596
1227h 82865
1228h EtherExpress Pro/100 Smart
1229h 82557 Fast Ethernet
122Dh 82437FX (Triton)
122Eh 82371FB ISA Bridge (Triton)
1230h 82338 IDE controller / 82371FB IDE function (Triton)
1234h 82371MX
1235h 82437MX
1237h 82441FX (see #0879)
1239h 82371FB IDE Interface (Triton)
1250h 82439HX (430HX chipset) (see #0843)
1960h 80960RP i960RP Microprocessor
7000h 82371SB ISA Bridge (see #0865)
7010h 82371SB IDE controller (see #0866)
7020h 82371SB (see #0867)
7030h 82437VX (430VX chipset) (see #0846)
84C4h 82450KX/GX PCI Bridge (Orion)
84C5h 82450KX/GX Memory Ctrlr (Orion)
SeeAlso: #0649,#0782
(Table 0786)
Values for Trigem Computer PCI device code:
2008h video assistant
SeeAlso: #0649
(Table 0787)
Values for Adaptec PCI device code:
1078h AIC-7810C RAID Coprocessor
5078h x940 Fast-Wide SCSI-II Ctrlr
5578h AHA-2830P SCSI Controller
7078h AHA-294x/AIC-7870P Fast-Wide SCSI-II
7178h AHA-2940 Fast-Wide SCSI-II
7278h x940 two-channel Fast-Wide SCSI
7378h AHA-3985 4-channel RAID SCSI
7478h AHA-2944 SCSI
7810h AIC-7810 memory control IC
7850h AIC-7850 SCSI IC
7855h AHA-2930 SCSI
7870h AIC-7870 SCSI IC
7871h AHA-2940
7872h AHA-3940
7873h AHA-3980
7874h AHA-2944 Differential SCSI
7880h AIC-7880 Fast-20 SCSI
8078h Adaptec 7880
8178h Adaptec 7881
8278h AHA-3940U/UW
8378h Adaptec 7883
8478h Adaptec 7884
SeeAlso: #0649
(Table 0788)
Values for Atronics PCI device code:
2015h Atronics 2015
SeeAlso: #0649
(Table 0789)
Values for Ark Logic Inc. PCI device code:
A091h ARK 1000PV ??? Stingray
A099h ARK 2000PV ??? Stingray
A0A1h ark2000mt 64-bit GUI Accel w/DCI
SeeAlso: #0649
--------X-1AB103-----------------------------
INT 1A - Intel PCI BIOS v2.0c+ - FIND PCI CLASS CODE
AX = B103h
ECX = class code (see also #F059,#0790)
bits 31-24 unused
bits 23-16 class
bits 15-8 subclass
bits 7-0 programming interface
SI = device index (0-n)
Return: CF clear if successful
CF set on error
AH = status (00h,86h) (see #0646)
00h successful
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 func)
86h device not found
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
the meanings of BL and BH on return were exchanged between the initial
drafts of the specification and final implementation
all devices sharing the same Class Code may be enumerated by
incrementing SI from 0 until error 86h is returned
SeeAlso: AX=B183h
--------X-1AB106-----------------------------
INT 1A - Intel PCI BIOS v2.0c+ - PCI BUS-SPECIFIC OPERATIONS
AX = B106h
BL = bus number
EDX = Special Cycle data
Return: CF clear if successful
CF set on error
AH = status (00h,81h) (see #0646)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Note: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
SeeAlso: AX=B186h,INT 2F/AX=1684h/BX=304Ch
--------X-1AB108-----------------------------
INT 1A - Intel PCI BIOS v2.0c+ - READ CONFIGURATION BYTE
AX = B108h
BL = device/function number (bits 7-3 device, bits 2-0 function)
BH = bus number
DI = register number (0000h-00FFh) (see #0790)
Return: CF clear if successful
CL = byte read
CF set on error
AH = status (00h,87h) (see #0646)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
the meanings of BL and BH on entry were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B109h,AX=B10Ah,AX=B188h,INT 2F/AX=1684h/BX=304Ch
--------X-1AB109-----------------------------
INT 1A - Intel PCI BIOS v2.0c+ - READ CONFIGURATION WORD
AX = B109h
BL = device/function number (bits 7-3 device, bits 2-0 function)
BH = bus number
DI = register number (0000h-00FFh) (see #0790)
Return: CF clear if successful
CX = word read
CF set on error
AH = status (00h,87h) (see #0646)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
the meanings of BL and BH on entry were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B108h,AX=B10Ah,AX=B189h,INT 2F/AX=1684h/BX=304Ch
--------X-1AB10A-----------------------------
INT 1A - Intel PCI BIOS v2.0c+ - READ CONFIGURATION DWORD
AX = B10Ah
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (0000h-00FFh) (see #0790)
Return: CF clear if successful
ECX = dword read
CF set on error
AH = status (00h,87h) (see #0646)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
the meanings of BL and BH on entry were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B108h,AX=B109h,AX=B18Ah,INT 2F/AX=1684h/BX=304Ch
Format of PCI Configuration Data:
Offset Size Description (Table 0790)
00h WORD vendor ID (read-only) (see #0649 at AX=B102h)
FFFFh returned if requested device non-existent
02h WORD device ID (read-only)
04h WORD command register (see #0791)
06h WORD status register (see #0792)
08h BYTE revision ID
09h 3 BYTEs class code
bits 7-0: programming interface
bits 15-8: sub-class
bits 23-16: class code (see also #F059)
0Ch BYTE cache line size
0Dh BYTE latency timer
0Eh BYTE header type
bits 6-0: header format
00h other
01h PCI-to-PCI bridge
02h PCI-to-CardBus bridge
bit 7: multi-function device
0Fh BYTE Built-In Self-Test result (see #0793)
---header type 00h---
10h DWORD base address 0 (see #0794)
(OpenHCI) base address of host controller registers (see #0891)
14h DWORD base address 1
18h DWORD base address 2
1Ch DWORD base address 3
20h DWORD base address 4
24h DWORD base address 5
28h DWORD CardBus CIS pointer (read-only) (see #0801)
2Ch WORD subsystem vendor ID or 0000h
2Eh WORD subsystem ID or 0000h
30h DWORD expansion ROM base address (see #0795)
34h BYTE offset of capabilities list within configuration space (R/O)
(only valid if status register bit 4 set) (see #0796)
35h 3 BYTEs reserved
38h DWORD reserved
3Ch BYTE interrupt line
00h = none, 01h = IRQ1 to 0Fh = IRQ15
3Dh BYTE interrupt pin (read-only)
(00h = none, else indicates INTA# to INTD#)
3Eh BYTE minimum time bus master needs PCI bus ownership, in 250ns units
(read-only)
3Fh BYTE maximum latency, in 250ns units (bus masters only) (read-only)
40h 48 DWORDs varies by device (see #0813,#0814,#0815,#0836)
---header type 01h---
10h DWORD base address 0 (see #0794)
14h DWORD base address 1
18h BYTE primary bus number (for bus closer to host processor)
19h BYTE secondary bus number (for bus further from host processor)
1Ah BYTE subordinate bus number
1Bh BYTE secondary latency timer
1Ch BYTE I/O base (see #0811)
1Dh BYTE I/O limit (see #0811)
1Eh WORD secondary status
20h WORD memory base (see #0812)
22h WORD memory limit
24h WORD prefetchable memory base
26h WORD prefetchable memory limit
28h DWORD prefetchable base, upper 32 bits
2Ch DWORD prefetchable limit, upper 32 bits
30h WORD I/O base, upper 16 bits
32h WORD I/O limit, upper 16 bits
34h DWORD reserved
38h DWORD expansion ROM base address
3Ch BYTE interrupt line
3Dh BYTE interrupt pin (read-only)
3Eh WORD bridge control
40h 48 DWORDs varies by device (see #0813,#0814,#0815,#0836)
---header type 02h---
10h DWORD CardBus Socket/ExCa base address (see #0802)
bits 31-12: start address of socket interface register block
in 4K blocks
bits 11-0: reserved (0)
14h BYTE offset of capabilities list within configuration space (R/O)
(only valid if status register bit 4 set) (see #0796)
15h BYTE reserved
16h WORD secondary status
18h BYTE PCI bus number
19h BYTE CardBus bus number
1Ah BYTE subordinate bus number
1Bh BYTE CardBus latency timer
1Ch DWORD memory base address 0
20h DWORD memory limit 0
24h DWORD memory base address 1
28h DWORD memory limit 1
2Ch WORD I/O base address 0
2Eh WORD I/O base address 0 high word (optional)
30h WORD I/O limit 0
32h WORD I/O limit 0 high word (optional)
34h WORD I/O base address 1
36h WORD I/O base address 1 high word (optional)
38h WORD I/O limit 1
3Ah WORD I/O limit 1 high word (optional)
3Ch BYTE interrupt line
3Dh BYTE interrupt pin (read-only) (no interrupt used if 00h)
3Eh WORD bridge control
40h WORD subsystem vendor ID
42h WORD subsystem device ID
44h DWORD 16-bit PC Card legacy mode base address (for accessing ExCa
registers)
48h 14 DWORDs reserved
80h 32 DWORDs varies by device (see #0813,#0814,#0815,#0836)
Bitfields for PCI Configuration Command Register:
Bit(s) Description (Table 0791)
0 I/O access enabled
1 memory access enabled
2 bus master enable
3 special cycle recognition enabled
4 memory write and invalidate enabled
5 VGA palette snoop enabled
6 parity error response enabled
7 wait cycles enabled
8 system error (SERR# line) enabled
9 fast back-to-back transactions enabled
15-10 reserved
SeeAlso: #0790,#0792
Format of PCI Configuration Status Register:
Bit(s) Description (Table 0792)
3-0 reserved (0)
4 new capabilities list is present (first entry pointed at by byte at
34h or 14h)
5 capable of running at 66 MHz
6 UDF supported
7 capable of fast back-to-back transactions
8 data parity error reported
10-9 device select timing
00 fast
01 medium
10 slow
11 reserved
11 signaled target abort
12 received target abort
13 received master abort
14 signaled system error (device is asserting SERR# line)
15 detected parity error (set even if parity error reporting is disabled)
Note: bits 12, 13 and 15 are cleared by writing a 1 into the corresponding
bit
SeeAlso: #0790,#0791
Bitfields for PCI Configuration Built-In Self-Test register:
Bit(s) Description (Table 0793)
3-0 completion code (0000 = successful)
5-4 reserved
6 start BIST (set to one to start, cleared automatically on completion)
7 BIST-capable
Notes: this register is hardwired to 00h if no BIST capability
software should timeout the BIST after two seconds
SeeAlso: #0790
Bitfields for PCI Configuration Base Address:
Bit(s) Description (Table 0794)
0 address type (0 = memory space, 1 = I/O space)
---memory address---
2-1 address type
00 anywhere in first 4GB
01 below 1MB
10 anywhere in 64-bit address space
11 reserved
3 prefetchable
31-4 bits 31-4 of base memory address if addressable in first 1MB or 4GB
63-4 bits 63-4 of base memory address if addressable in 64-bit memory
(bits 63-32 are stored in the following base address DWORD)
---I/O address---
1 reserved
31-2 bits 31-2 of base I/O port
SeeAlso: #0790,#0891
Bitfields for PCI Configuration Expansion ROM Address:
Bit(s) Description (Table 0795)
0 address decode enable (ROM address is valid)
10-1 reserved
31-11 bits 31-11 of ROM's starting physical address
SeeAlso: #0790
Format of PCI Capabilities List:
Offset Size Description (Table 0796)
00h BYTE capability identifier
01h PCI Power Managment
01h BYTE offset of next item (within configuration space) or 00h
N BYTEs varies by capability type
---PCI Power Management---
02h WORD power managment capabilities (see #0797) (read-only)
04h WORD power managment capabilities status register (see #0798)
06h BYTE PMCSR bridge support extensions (see #0799)
07h BYTE (optional) read-only data register (see #0800)
Note: this information is from the v0.93 draft of the specification and is
subject to change
SeeAlso: #0790,#0792
Bitfields for PCI Power Management Capabilities:
Bit(s) Description (Table 0797)
15 reserved (0)
14-12 PME# support
bit 12: PME# can be asserted from power state D0
bit 13: PME# can be asserted from power state D1
bit 14: PME# can be asserted from power state D2
11 reserved (0)
10 D2 power state supported
9 D1 power state supported
8 full-speed clock is required in state D0 for proper operation
(if clear, device may be run at reduced clock except when actually
being accessed)
7-6 dynamic clock control support
00 not bridge, no dynamic clock control, or secondary bus' clock is
is tied to primary bus' clock
01 bridge is capable of dynamic clock control
10 reserved
11 secondary bus has independent clock, but dynamic clock not supported
5 device-specific initialization is required
4-3 reserved (0)
2-0 specification version
001 = v1.0; four bytes of power management registers
Note: this information is from the v0.93 draft of the specification and is
subject to change
SeeAlso: #0796,#0798,#0799
Bitfields for PCI Power Management Capabilities Status Register:
Bit(s) Description (Table 0798)
15 PME status: if set, PME# is (or would be) asserted
writing a 1 to this bit clears it
14-13 (read-only) scale factor to apply to contents of Data register
00 unknown (or unimplemented data)
01 x0.1
10 x0.01
11 x0.001
12-9 (read-write) data select (see #0800)
8 (read-write) enable PME# assertion
7-5 reserved (0)
4 (read-write) enable dynamic data reporting
when set, PME# is asserted whenever the value in the Data register
changes significantly
3-2 reserved (0)
1-0 (read-write) current power state
00 = D0
...
11 = D3
Note: this information is from the v0.93 draft of the specification and is
subject to change
SeeAlso: #0796,#0797,#0799
Bitfields for PCI Power Management PMCSR bridge support extension:
Bit(s) Description (Table 0799)
7 (read-only) Bus Power Control Enable
6 (read-only) Bus Power State B3 supported
5 (read-only) Bus Power State B2 supported
4 dynamic clock control enable
3-0 reserved (0)
Note: this information is from the v0.93 draft of the specification and is
subject to change
SeeAlso: #0796,#0797,#0798
(Table 0800)
Values for PCI Power Management Data Select:
00h D0-state power consumed in watts (+20%/-10%)
01h D1-state power consumed in watts (+20%/-10%)
02h D2-state power consumed in watts (+20%/-10%)
03h D3-state power consumed in watts (+20%/-10%)
04h D0-state power dissipated into chassis in watts
05h D1-state power dissipated into chassis in watts
06h D2-state power dissipated into chassis in watts
07h D3-state power dissipated into chassis in watts
08h-0Fh reserved
SeeAlso: #0798
Bitfields for PCI Configuration CardBus CIS Pointer:
Bit(s) Description (Table 0801)
2-0 address space
000 in device's device-specific configuration space
001 in memory pointed to by base address register 0
...
110 in memory pointed to by base address register 5
111 in device's expansion ROM
27-3 offset within address space defined by bits 2-0
31-28 ROM image number
SeeAlso: #0790
Format of CardBus Socket/ExCA socket interface register space:
Offset Size Description (Table 0802)
00h DWORD Socket Event Register (see #0804)
04h DWORD Socket Mask Register (see #0805)
08h DWORD Socket Present State Register (see #0806)
0Ch DWORD Socket Force Event Register (see #0807)
10h DWORD Socket Control Register (see #0808)
14h 3 DWORDs reserved
20h DWORD Socket Power Management Register
90h BYTE (TI PCI1130) Retry Status Register
91h BYTE (TI PCI1130) Card Control Register (see #0809)
92h BYTE (TI PCI1130) Device Control Register (see #0810)
93h BYTE (TI PCI1130) Buffer Control Register
800h 64+ BYTEs ExCa Socket Interface Registers (see #0803)
Format of ExCa memory-mapped registers:
Offset Size Description (Table 0803)
00h BYTE identification and revision register
01h BYTE interface status register
02h BYTE power control register
03h BYTE interrupt and general control
04h BYTE card status change
05h BYTE card status change interrupt configuration
06h BYTE address window enable
07h BYTE I/O window control register
08h WORD I/O window 0 start address
0Ah WORD I/O window 0 end address
0Ch WORD I/O window 1 start address
0Eh WORD I/O window 1 end address
10h WORD memory window 0 start address
12h WORD memory window 0 end address
14h WORD memory window 0 offset address
16h 2 BYTEs user-defined
18h WORD memory window 1 start address
1Ah WORD memory window 1 end address
1Ch WORD memory window 1 offset address
1Eh BYTE user-defined
1Fh BYTE reserved
20h WORD memory window 2 start address
22h WORD memory window 2 end address
24h WORD memory window 2 offset address
26h 2 BYTEs user-defined
28h WORD memory window 3 start address
2Ah WORD memory window 3 end address
2Ch WORD memory window 3 offset address
2Eh 2 BYTEs user-defined
30h WORD memory window 4 start address
32h WORD memory window 4 end address
34h WORD memory window 4 offset address
36h 10 BYTEs user-defined
---optional---
40h BYTE memory window 0 start address high byte
41h BYTE memory window 1 start address high byte
42h BYTE memory window 2 start address high byte
43h BYTE memory window 3 start address high byte
44h BYTE memory window 4 start address high byte
45h-7FFh user-defined
SeeAlso: #0802
Bitfields for CardBus Socket Event Register:
Bit(s) Description (Table 0804)
0 CSTSCHG pin asserted (status change)
1 CCD1# (card detect 1) changed state
2 CCD2# (card detect 2) changed state
3 interface power cycle completed
31-4 reserved (0)
Note: the bits in this register are set by the bridge, and cleared by writing
a one into the bits one wishes to clear
SeeAlso: #0802,#0805,#0807
Bitfields for CardBus Socket Event Mask Register:
Bit(s) Description (Table 0805)
0 write-protect (enable status-change interrupt on WriteProtect switch)
1 ready mask (allow status-change interrupt on Ready line change)
3-2 battery condition (allow status-change int on battery-condition change)
4 general wakeup enabled
5 binary audio mode enabled on CAUDIO pin
6 Pulse Width Modulation enabled on CAUDIO pin
(CAUDIO state undefined if both bits 5 and 6 set)
13-7 reserved (0)
14 Wakeup mask (enable wakeup events via status-change pin)
15 enable card interrupts via CINT# pin and wakeup events
31-16 reserved
SeeAlso: #0802,#0804,#0806
Bitfields for CardBus Socket Present State Register:
Bit(s) Description (Table 0806)
0 CSTSCHG pin asserted (status change)
1 CCD1# (card detect 1) changed state
2 CCD2# (card detect 2) changed state
3 interface power cycle completed
4 16-bit PC card inserted
5 CardBus card inserted
6 card's interrupt pin asserted
7 card inserted but type can not be determined
8 data may have been lost due to abrupt card removal
9 attempted to apply Vcc voltage not supported by the card
10 card can accept Vcc = 5.0 volts
11 card can accept Vcc = 3.3 volts
12 card can accept Vcc = X.X volts
13 card can accept Vcc = Y.Y volts
27-14 reserved (0)
28 socket can accept Vcc = 5.0 volts
29 socket can accept Vcc = 3.3 volts
30 socket can accept Vcc = X.X volts
31 socket can accept Vcc = Y.Y volts
Note: bits 0-3 may be cleared by writing a 1 into the respective bits
SeeAlso: #0802,#0804,#0805,#0808
Bitfields for CardBus Socket Force Event Register:
Bit(s) Description (Table 0807)
0 write-protect
1 ready
2 battery voltage detect 2
3 battery voltage detect 1
4 general wakeup
14-5 reserved (0)
15 enable card interrupts via CINT# pin
31-16 reserved
Note: this register can simulate events by forcing the values of some of the
bits in the Event Mask Register; any bit of this register which is
set to 1 forces the corresponding bit in the Mask Register to 1,
while bits set to 0 leave the corresponding bit unchanged
SeeAlso: #0802,#0804,#0808
Bitfields for CardBus Socket Control Register:
Bit(s) Description (Table 0808)
2-0 Vpp control
000 power off
001 12.0 Volts
010 5.0 Volts
011 3.3 Volts
100 reserved (X.X Volts)
101 reserved (Y.Y Volts)
110 reserved
111 reserved
3 reserved (0)
6-4 Vcc control (as for Vpp, but 12.0V not supported)
31-7 reserved (0)
SeeAlso: #0802,#0805,#0807
Bitfields for TI PCI1130 Card Control Register:
Bit(s) Description (Table 0809)
0 interrupt pending
1 speaker output enabled
2 reserved
3 enable status-change interrupt routing (to INTA# for socket A, INTB#
for socket B)
4 function interrupt routed to corresponding PCI interrupt pin
5 PCI interrupts enabled
6 ZOOM video mode enabled
7 Ring Indicator enabled on IRQ15/RI_OUT pin
SeeAlso: #0802,#0810
Bitfields for TI PCI1130 Device Control Register:
Bit(s) Description (Table 0810)
0 reserved (0)
2-1 interrupt mode enable
00 no interrupt
01 ISA mode (direct IRQ routing)
10 serialized interrupt mode
11 reserved
4-3 reserved
5 3volt Socket Capable force bit
6 5volt Socket Capable force bit
7 reserved
SeeAlso: #0802,#0809
Bitfields for PCI Configuration I/O base and limit:
Bit(s) Description (Table 0811)
3-0 (read-only) address decoding type
0000 16-bit
0001 32-bit
other reserved
7-4 bits 15-12 of I/O address range
SeeAlso: #0790,#0812
Bitfields for PCI Configuration memory base and limit:
Bit(s) Description (Table 0812)
3-0 address decode type
0000 32-bit address decoder
0001 64-bit address decoder
other reserved
15-4 bits 31-20 of memory address range
SeeAlso: #0790,#0811
Format of PCI Configuration Data for VLSI VL82C591 Host/PCI bridge:
Offset Size Description (Table 0813)
00h 64 BYTEs header (see #0790)
(device ID 0005h)
40h BYTE bus number
41h BYTE subordinate bus number
42h WORD reserved
44h 4 DWORDs reserved
54h 2 BYTEs device-specific configuration registers
56h WORD reserved
58h 2 BYTEs device-specific configuration registers
5Ah WORD reserved
5Ch 5 BYTEs device-specific configuration registers
...
FFh BYTE device-specific configuration register
SeeAlso: #0790,#0649,#0814
Format of PCI Configuration data for VLSI VL82C593 PCI/ISA bridge:
Offset Size Description (Table 0814)
00h 64 BYTEs header (see #0790)
(device ID 0006h)
40h 4 DWORDs reserved
50h 11 BYTEs device-specific configuration registers
5Bh BYTE reserved
5Ch 25 BYTEs device-specific configuration registers
75h 138 BYTEs reserved
FFh BYTE device-specific configuration register
SeeAlso: #0790,#0813
Format of PCI Configuration data for Intel 82434 Cache/DRAM Controller:
Offset Size Description (Table 0815)
00h 64 BYTEs header (see #0790)
(vendor ID 8086h, device ID 04A3h)
(revision numbers < 10h vary slightly from revision 10h)
40h 16 BYTEs unused (hard-wired to 00h)
44h BYTE ??? (AMI BIOS writes 00h)
45h BYTE ??? (AMI BIOS writes 00h)
50h BYTE secondary (L2) cache control???
bit 2: enable L2 cache
bits 1-0: ??? (set according to external bus speed)
51h BYTE deturbo frequency control register
when deturbo mode is selected (see PORT 0CF9h), the chipset
places a hold on the memory bus for a fraction of the
time inversely proportional to the value in this register
(i.e. C0h = 1/4, 80h = 1/2, 40h = 3/4, 20h = 7/8, etc.)
(only bits 7-6 writable, bits 5-0 hardwired to 0)
52h BYTE ???cache control???
bits 6-7: ???
bits 4-3: ???
bit 1: ???
bit 0: ???
53h BYTE CPU control???
bit 3: ???
bit 1: enable CPU-to-PCI posted writes
bit 0: enable CPU-to-memory posted writes
54h BYTE PCI control
bit 0: enable PCI-to-memory posted writes
bit 1: enable PCI burst
bit 2: ???
55h 2 BYTEs ???
57h BYTE DRAM Control???
bit 0: ???
bit 2: ???
bit 5: disable parity detection mode???
58h BYTE DRAM Timing??? (see also #0855)
bit 0: ???
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #0856)
60h 8 BYTEs DRAM Row Boundary registers 0-7
(chip revisions numbered < 10h only support six rows of DRAM)
each register N indicates the amount of cumulative amount of
memory in SIMM banks 0-N, in multiples of 1M; offset 67h
(65h on pre-revision 10h 82434's) contains the total amount
of memory installed in the system
68h BYTE DRAM Row Type???
(each bit indicates parity/nonparity ???)
69h 3 BYTEs ???
6Ch DWORD unused??? (apparently hardwired to 00000000h)
70h BYTE ???Multi-Transaction Timer???
bits 1-0: ???
71h BYTE ???
bit 3: memory has parity???
72h BYTE System Management RAM control (see also #0860)
bits 2-0: SMRAM memory address???
bit 5: map SMM-mode memory (64K) into address space when bits
2-0 = 010 (default 3000h:0000h; can be changed by
first SMM event)
73h 5 BYTEs ???
78h WORD ???
bits 7-4: bottom of ISA memory hole in MB???
bits 14-12: size of ISA hole in MB (less 1)???
bit 15: enable ISA hole???
7Ah 2 BYTEs ???
7Ch DWORD ???
bits 0-3: ???
bit 9: ???
bit 13: byte merging enabled
bit 29: ???
bit 31: ???
80h 128 BYTEs unused???
Note: the 82434 is part of the Intel Neptune chipset
SeeAlso: #0817,#0836
Format of PCI Configuration data for Intel 82424 Cache Controller:
Offset Size Description (Table 0816)
00h 64 BYTEs header (see #0790)
(vendor ID 8086h, device ID 0483h)
40h BYTE bus number
41h BYTE subordinate bus number
42h BYTE disconnect timer
50h BYTE host CPU selection
51h BYTE deturbo frequency control
when deturbo mode is selected (see PORT 0CF9h), the chipset
places a hold on the memory bus for a fraction of the
time inversely proportional to the value in this register
(i.e. C0h = 1/4, 80h = 1/2, 40h = 3/4, 20h = 7/8, etc.)
52h BYTE secondary cache control
53h BYTE write buffer control
54h BYTE PCI features control
55h BYTE DRAM Operation Mode Select
56h BYTE System Exception Handling
57h BYTE SMM Control Register
58h BYTE reserved
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see also #0856)
60h 4 BYTEs DRAM Row Boundary registers 0-3
each register N indicates amount of memory in rows 0-N (each
row is 64 bits wide)
boundary register 3 (offset 63h) contains the total system
memory, which may not exceed 128M
64h 4 BYTEs unused???
68h WORD Memory Hole-0
6Ah WORD Memory Hole-1
Note: the above field names are those given by EduWARE's PCI Configuration
Manager v1.2
SeeAlso: #0815,#0836,#0846
Format of PCI Configuration data for Intel 82378 and 82379 ISA Bridges:
Offset Size Description (Table 0817)
00h 64 BYTEs header (see #0790)
(vendor ID 8086h, device ID 0484h)
(revision ID:
bits 7-4: reserved
bits 3-0: revision
0011 82378ZB A0-step
1000 82379AB A0-step)
40h BYTE PCI Control (see #0818)
41h BYTE PCI Arbiter Control (see #0819)
42h BYTE PCI Arbiter Priority Control (see #0820)
43h BYTE (82378ZB) PCI Arbiter Priority Control Extension Register
bit 0: bank 3 fixed priority mode select (see also #0820)
=0 REQ2# has higher priority
=1 REQ3# has higher priority
44h BYTE MEMCS# Control (see #0821)
45h BYTE MEMCS# Bottom of Hole (address bits 23-16)
46h BYTE MEMCS# Top of Hole (address bits 23-16)
47h BYTE MEMCS# Top of Memory
(address bits 28-21 == size in 2M increments, less 1)
48h BYTE ISA Address Decoder Control (see #0822)
49h BYTE ISA Address Decoder ROM Block Enable (see #0823)
4Ah BYTE ISA Address Decoder Bottom of Hole (address bits 23-16)
4Bh BYTE ISA Address Decoder Top of Hole (address bits 23-16)
4Ch BYTE ISA Controller Recovery Time (see #0840)
4Dh BYTE ISA Clock Divisor (see #0824)
4Eh BYTE Utility Bus Chip Select Enable A (see #0825)
4Fh BYTE Utility Bus Chip Select Enable B (see #0826)
50h 4 BYTEs reserved
54h BYTE MEMCS# Attribute Register #1 (see #0827)
attributes for 16K blocks from C0000h-CFFFFh
55h BYTE MEMCS# Attribute Register #2 (see #0827)
attributes for 16K blocks from D0000h-DFFFFh
56h BYTE MEMCS# Attribute Register #3 (see #0827)
attributes for 16K blocks from E0000h-EFFFFh
57h BYTE (82378) Scatter/Gather Relocation Base Adress (see #0828)
(82379AB) reserved
58h 8 BYTEs reserved
60h BYTE (82378ZB) IRQ0# Route Control (see #0829)
61h BYTE (82378ZB) IRQ1# Route Control (see #0829)
62h BYTE (82378ZB) IRQ2# Route Control (see #0829)
63h BYTE (82378ZB) IRQ3# Route Control (see #0829)
64h 12 BYTEs reserved
70h BYTE (82378) reserved
(82379AB, write-only) PIC/APIC Configuration Control
(see #0830)
71h BYTE (82378) reserved
(82379AB, write-only) APIC Base Address Relocation
(see #0831,MEM FEC00000h)
72h 14 BYTEs reserved
80h WORD BIOS timer base address (see PORT 0078h)
bits 15-2 are bits 15-2 of BIOS timer port address
bit 1: reserved (0)
bit 0: timer enabled (if disabled, other bits ignored)
82h 30 BYTEs unused???
A0h BYTE SMI Control (see #0832)
A1h BYTE reserved
A2h WORD SMI Enable (see #0833)
A4h DWORD System Event Enable (SEE) (see #0834)
A8h BYTE Fast-Off Timer (in minutes)
A9h BYTE reserved
AAh WORD active SMI Requests (see #0835)
ACh BYTE (82378ZB) Clock Throttle STPCLK# Low Timer
duration of STPCLK# low period in 32 microsecond units
ADh BYTE reserved
AEh BYTE (82378ZB) Clock Throttle STPCLK# High Timer
duration of STPCLK# high period in 32 microsecond units
AFh 81 BYTEs reserved
SeeAlso: #0815,#0865,PORT 040Ah"82378ZB"
Bitfields for Intel 82378/82379 PCI Control:
Bit(s) Description (Table 0818)
7 reserved (0)
6 DMA Reserved Page Register Aliasing Control
=0 alias PORT 80h-8Fh to PORT 90h-9Fh
5 Interrupt Acknowledge Enable
=0 ignore INTA cycles on the PCI bus, but still allow 8259 register
access and poll-mode functions
4-3 Subtractive Decoding Sample Point
00 slow sample point
01 typical
10 fast sample point
11 reserved
2 PCI Posted Write Buffer Enable
1 ISA Master Line Buffer Configuration
=0 single-transaction mode
=1 eight-byte mode for ISA bus master transfers
0 DMA Line Buffer Configuration
=0 single-transaction mode
=1 eight-byte mode
SeeAlso: #0817,#0819
Bitfields for Intel 82378/82379 PCI Arbiter Control:
Bit(s) Description (Table 0819)
7-5 reserveed (0)
4-3 Master Retry Timer
00 disabled (retries never masked)
01 retries unmasked after 16 PCICLKs
10 retries unmasked after 32 PCICLKs
11 retries unmasked after 64 PCICLKs
2 Bus Park
=1 park CPUREQ# on PCI bus when 82378 detects PCI bus idle
1 Bus Lock
=0 resource lock
=1 Bus lock
0 Guaranteed Access Time
=1 ISA bus masters are guaranteed 2.5 microsecond CHRDY time-out
SeeAlso: #0817,#0818
Bitfields for Intel 82378/82379 PCI Arbiter Priority Control:
Bit(s) Description (Table 0820)
7 bank 3 rotate control
6 bank 2 rotate control
5 bank 1 rotate control
4 bank 0 rotate control
3 bank 2 fixed priority mode select B
2 bank 2 fixed priority mode select A
1 bank 1 fixed priority mode select
0 bank 0 fixed priority mode select
Note: if both 'rotate' and 'fixed' bits are set for a given bank,
that bank will be in rotating-priority mode
SeeAlso: #0817,#0819
Bitfields for Intel 82378/82379 MEMCS# Control Register:
Bit(s) Description (Table 0821)
7-5 reserved (0)
4 MEMCS# Master Enable
3 write enable for 0F0000h-0FFFFFh
2 read enable for 0F0000h-0FFFFFh
1 write enable for 080000h-09FFFFh
0 read enable for 080000h-09FFFFh
SeeAlso: #0817
Bitfields for Intel 82378/82379 ISA Address Decoder Control Register:
Bit(s) Description (Table 0822)
7-4 ISA memory cycle forwarding to PCI
0000-1111 = 1M-16M top of ISA memory; any accesses above programmed
limit are forwarded to PCI bus
3-0 ISA/DMA memory cycle to PCI bus enables
bit 3: 896K-960K (E000h-EFFFh)
bit 2: 640K-768K (A000h-BFFFh)
bit 1: 512K-640K (8000h-9FFFh)
bit 0: 0K-512K (0000h-7FFFh)
SeeAlso: #0817,#0823
Bitfields for Intel 82378/82379 ISA Address Decoder ROM Block Enable:
Bit(s) Description (Table 0823)
7 enable 880K-896K (EC00h-EFFFh)
6 enable 864K-880K (E800h-EBFFh)
5 enable 848K-864K (E400h-E7FFh)
4 enable 832K-848K (E000h-E3FFh)
3 enable 816K-832K (DC00h-DFFFh)
2 enabel 800K-816K (D800h-DBFFh)
1 enable 784K-800K (D400h-D7FFh)
0 enable 768K-784K (D000h-D3FFh)
Note: ISA accesses within any enabled ranges are forwarded to the PCI bus
SeeAlso: #0817,#0822
Bitfields for Intel 82378/82379 ISA Clock Divisor Register:
Bit(s) Description (Table 0824)
7 reserved (0)
6 enable positive decode of upper 64K BIOS at 000F0000h-000FFFFFh,
FFEF0000h-FFEFFFFFh, and FFFF0000h-FFFFFFFFh
5 coprocessor error enable
=1 FERR# is driven onto IRQ13
4 IRQ12/Mouse Function Enable
=0 standard IRQ12
=1 mouse
3 RSTDRV enable
=1 assert RSTDRV until this bit cleared (for use in changing ISA bus
speed)
2-0 PCICLK-to-ISA SYSCLK divisor
000 4
001 3
other reserved
SeeAlso: #0817,#0822
Bitfields for Intel 82378/82379 Utility Bus Chip Select A Register:
Bit(s) Description (Table 0825)
7 extended BIOS enable (decode accesses to FFF80000h-FFFDFFFFh)
6 lower BIOS enable (decode accesses to E0000h-EFFFFh,
FFEE0000h-FFEEFFFFh, and FFFE0000h-FFFEFFFFh)
5 (82378ZB) floppy disk primary/secondary address select
=1 use secondary address range
4 (82378ZB) IDE Decode enable
3,2 floppy disk address locations enable
1 keyboard controller address location enable
enables I/O addresses 60h,62h,64h,66h (82378ZB) or 60h/64h (82379AB)
0 RTC address location enabled
=1 enable decode of I/O ports 70h-77h
SeeAlso: #0817,#0842,#0826
Bitfields for Intel 82378ZB/82379 Utility Bus Chip Select B Register:
Bit(s) Description (Table 0826)
7 configuration RAM decode enable
=1 permit write accesses to I/O port 0C00h and r/w to ports 08xxh
6 enable PORT 0092h
5-4 parallel port enable
00 LPT1 (ports 03BCh-03BFh)
01 LPT2 (ports 0378h-037Fh)
10 LPT3 (ports 0278h-027Fh)
11 disabled
3-2 serial port B enable
00 COM1 (03F8h-03FFh)
01 COM2 (02F8h-02FFh)
10 reserved
11 port B disabled
1-0 serial port A enable
00 COM1 (03F8h-03FFh)
01 COM2 (02F8h-02FFh)
10 reserved
11 port A disabled
Note: if both serial ports are set to the same address, port B is disabled
SeeAlso: #0817,#0825,PORT 0092h
Bitfields for Intel 82378/82379 MEMCS# Attribute Register 1/2/3:
Bit(s) Description (Table 0827)
7 write-enable xC000h-xFFFFh expansion ROM
6 read-enable xC000h-xFFFFh expansion ROM
5 write-enable x8000h-xBFFFh expansion ROM
4 read-enable x8000h-xBFFFh expansion ROM
3 write-enable x4000h-x7FFFh expansion ROM
2 read-enable x4000h-x7FFFh expansion ROM
1 write-enable x0000h-x3FFFh expansion ROM
0 read-enable x0000h-x3FFFh expansion ROM
Note: x = C/D/E depending on the attribute register
SeeAlso: #0817
Bitfields for Intel 82378ZB Scatter Gather Relocation Base Address:
Bit(s) Description (Table 0828)
(no details in Intel documentation)
SeeAlso: #0817,#0827,#0829,PORT 040Ah"82378ZB"
Bitfields for Intel 82378/82379 PCI IRQ Route Control Register:
Bit(s) Description (Table 0829)
7 disable IRQ routing
6-4 reserved (0)
3-0 ISA IRQ number to which to route the PCI IRQ
Note: IRQs 0-2, 8, and 13 are reserved
SeeAlso: #0817,#0865
Bitfields for Intel 82379AB PIC/APIC Configuration Control Register:
Bit(s) Description (Table 0830)
7-2 reserved
1 SMI Routing Control
=1 SMI via APIC
=0 SMI via SMI# signal
0 INT Routing Control
=1 INT disabled (requires that APIC be enabled)
=0 INT enabled
SeeAlso: #0817,#0831
Bitfields for Intel 82379AB/82371 APIC Base Address Relocation:
Bit(s) Description (Table 0831)
7 reserved
6 (82379AB) reserved
6 (82371) A12 mask
=1 ignore address bit 12 in APIC address
5-0 bits 15-10 of APIC memory address (ORed with FEC00000h to form base
address)
SeeAlso: #0817,#0865,#0830,MEM FEC00000h
Bitfields for Intel 82378/82379 SMI Control Register:
Bit(s) Description (Table 0832)
7 reserved
6 (82378) reserved
(82379) require Stop Grant bus cycle before asserting STPCLK#
5-4 reserved
3 Fast-Off Timer freeze
2 STPCLK# scaling enable
=1 enable Clock Throttle bytes in PCI configuration space
1 STPCLK# signal enable
=1 assert STPCLK# on read from PORT 00B2h
0 SMI# Gate
=1 enable SMI# on system management interrupt
Notes: bit 1 is cleared either with an explicit write of 0 here, or by any
write to PORT 00B2h
bit 0 does not affect the recording of SMI events, so a pending SMI
will cause an immediate SMI# when the bit is set
SeeAlso: #0817,#0833,#0834,#0874,PORT 00B2h
Bitfields for Intel 82371/82378/82379 SMI Enable Register:
Bit(s) Description (Table 0833)
15-9 reserved
8 (82371SB only) Legacy USB SMI enable
7 APMC Write SMI enable
=1 generate SMI on write to PORT 00B2h
6 EXTSMI# SMI enable
5 Fast-Off Timer SMI enable
4 IRQ12 (PS/2 mouse) SMI enable
3 IRQ8 (RTC alarm) SMI enable
2 IRQ4 (COM1/COM3) SMI enable
1 IRQ3 (COM2/COM4) SMI enable
0 IRQ1 (keyboard) SMI enable
SeeAlso: #0817,#0832,#0834,#0865,PORT 00B2h
Bitfields for Intel 82371/82378/82379 System Event Enable Register:
Bit(s) Description (Table 0834)
31 Fast-Off SMI enable (system and break events)
30 (82379 only) Fast-Off Interrupt Enable (break events only)
30 (82371 only) INTR enable (break events only)
29 Fast-Off NMI enable (system and break events)
28 (82371SB only) Fast-Off APIC enable (break events only)
27 (82379 only) Fast-Off COM enable (system events only)
26 (82379 only) Fast-Off LPT enable (system events only)
25 (82379 only) Fast-Off Drive enable (system events only)
24 (82379 only) Fast-Off DMA enable (system events only)
23-16 reserved
15-3 Fast-Off IRQ (15-3) enable (system and break events)
2 reserved
1-0 Fast-Off IRQ (1-0) enable (system and break events)
Note: any enabled system event restarts the Fast-Off Timer, thus preventing
a Fast-Off powerdown; any enabled break event awakens the system from
powerdown
SeeAlso: #0817,#0832,#0833,#0835,#0865
Bitfields for Intel 82371/82378/82379 SMI Request Register:
Bit(s) Description (Table 0835)
15-9 reserved
8 (82371SB only) Legacy USB SMI status
7 APM SMI Status (write to PORT 00B2h triggered SMI)
6 EXTSMI# SMI Status (EXTSMI# line triggered SMI)
5 Fast-Off Timer expired
4 IRQ12 triggered SMI
3 IRQ8 triggered SMI
2 IRQ4 triggered SMI
1 IRQ3 triggered SMI
0 IRQ1 triggered SMI
Note: software must explicitly reset the appropriate bits
SeeAlso: #0817,#0834,#0865
Format of PCI Configuration data for Intel 82425EX PSC:
Offset Size Description (Table 0836)
00h 64 BYTEs header (see #0790)
(vendor ID 8086h, device ID 0486h)
40h BYTE PCI control register (see #0837)
41h 3 BYTEs ???
44h BYTE host device control register (see #0838)
45h 3 BYTEs ???
48h WORD PCI local-bus IDE control register (see #0839)
4Ah 2 BYTEs ???
4Ch BYTE ISA I/O recovery timer register (see #0840)
4Dh BYTE part revision register (see #0841)
4Eh BYTE X-bus Chip Select A register (see #0842)
4Fh BYTE X-bus Chip Select B register???
50h BYTE host select register
51h BYTE deturbo frequency control register
when deturbo mode is selected (see PORT 0CF9h), the chipset
places a hold on the memory bus for a fraction of the
time inversely proportional to the value in this register
(i.e. C0h = 1/4, 80h = 1/2, 40h = 3/4, 20h = 7/8, etc.)
52h WORD secondary (L2) cache control register
54h 2 BYTEs ???
56h WORD DRAM control register
58h BYTE ???
59h 7 BYTEs Programmable Attribute Map (PAM) registers 0-6 (see also #0856)
60h 5 BYTEs DRAM row boundary registers 0-4
each register N indicates amount of memory in rows 0-N (each
row is 64 bits wide); the fifth row of memory (if
implemented) must contain either 8M or 16M, depending on
system configuration
boundary register 4 (offset 64h) contains the total system
memory, which may not exceed 128M
65h BYTE ???
66h BYTE PIRQ route control register 0
67h BYTE PIRQ route control register 1
68h BYTE DRAM memory hole register
69h BYTE top of memory
6Ah 6 BYTEs ???
70h BYTE SMRAM control register
71h 47 BYTEs unused???
A0h BYTE SMI control register
A1h BYTE ???
A2h WORD SMI enable register
A4h DWORD system event enable
A8h BYTE fast off timer register
A9h BYTE ???
AAh WORD SMI request register
ACh BYTE clock throttle STPCLK# low timer
ADh BYTE unused???
AEh BYTE clock throttle STPCLK# high timer
AFh BYTE ???
B0h 80 BYTEs unused???
SeeAlso: #0790,#0816,#0815,#0846,#0865
Bitfields for Intel 82425EX PCI control register:
Bit(s) Description (Table 0837)
0 CPU-to-PCI byte merging
1 CPU-to-PCI bursting enable
2 PCI posted-write buffer enable
4-3 subtractive decode sampling point
00 slow
01 typical
10 fast
11 reserved
5 DRAM parity error enable
6 target abort error enable
7 reserved
SeeAlso: #0836,#0838,#0839,#0840
Bitfields for Intel 82425EX host device control register:
Bit(s) Description (Table 0838)
0 HRDY# maximum signal sampling point
0 slow timing
1 fast timing
1 HDEV# signal sampling point
0 slow timing
1 fast timing
2 host device present
7-3 reserved
SeeAlso: #0836,#0837
Bitfields for Intel 82425EX local-bus IDE control register:
Bit(s) Description (Table 0839)
1-0 primary/secondary PCI IDE enable
00 IDE disabled
01 primary (ports 01F0h-01F7h,03F6,03F7h)
10 secondary (ports 0170h-017Fh,0376h,0377h)
11 reserved
3-2 fast timing bank drive select 1
bit 2 = drive 0 enabled
bit 3 = drive 1 enabled
5-4 IORDY sample point Enable Drive Select
bit 4 = drive 0 enabled
bit 5 = drive 1 enabled
7-6 reserved
9-8 IORDY sample point
00 6 clocks
01 5 clocks
10 4 clocks
11 3 clocks
12-10 recover time (000 = 8 PCI clocks, 001 = 7, ..., 101 = 3, 110/111 = 3)
15-13 reserved
SeeAlso: #0836,#0837
Bitfields for Intel chipset ISA I/O recovery timer register:
Bit(s) Description (Table 0840)
1-0 16-bit I/O recovery time
00 = 4 SYSCLKs
01-11 = 1-3 SYSCLKs
2 16-bit I/O recovery enable
5-3 8-bit I/O recovery time
000 = 8 SYSCLKs
001-110 = 1-7 SYSCLKs
6 8-bit I/O recovery enable
7 (82425EX/82371) DMA reserved page register aliasing disable
=0 ports 0090h-009Fh alias ports 0080h-008Fh
=1 ports 0090h-009Fh forwarded to ISA bus
SeeAlso: #0817,#0836,#0837,#0865
Bitfields for Intel 82425EX part revision register:
Bit(s) Description (Table 0841)
7-5 fabrication house identifier (read-only)
4 E0000h-EFFFFh ISA-to-main-memory forwarding enabled
3-0 revision ID (read-only)
SeeAlso: #0836,#0842
Bitfields for Intel 82425EX/82371 X-bus Chip Select A register:
Bit(s) Description (Table 0842)
7 extended BIOS enabled at FFF80000h-FFFDFFFFh
6 lower (E000h) BIOS enabled
5 trigger IRQ13 on FERR#
4 IRQ12 mouse function enabled
3 reserved (0)
2 BIOS memory write protect
1 keyboard controller addresses (60h,62h,64h,66h) enabled
0 RTC addresses (70h-77h) enabled
SeeAlso: #0836,#0865,#0841
Format of PCI Configuration Data for Intel 82439HX:
Offset Size Description (Table 0843)
00h 64 BYTEs header (see #0790)
(vender ID 8086h, device ID 1250h)
(revision ID 00h = A0 stepping)
40h 16 BYTEs reserved
50h BYTE PCI Control (see #0848)
51h BYTE reserved
52h BYTE cache control (see #0850)
53h 3 BYTEs reserved
56h BYTE DRAM extended control (see #0853)
57h BYTE DRAM control (see #0854)
58h BYTE DRAM timing (see #0855)
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #0856)
60h 8 BYTEs DRAM Row Boundary registers 0-7
each register N indicates cumulative amount of memory in rows
0-N (each 64 bits wide), in 4M units
68h BYTE DRAM Row Type (see #0857)
bits 0-7 indicate whether each row 0-7 contains EDO DRAM
instead of page-mode DRAM
69h BYTE ???
6Ah 8 BYTEs reserved
72h BYTE System Management RAM control (see #0860)
73h 29 BYTEs reserved
90h BYTE Error Command (see #0863)
91h BYTE Error Status (see #0864) (read-only)
92h BYTE Error Syndrome (read-only)
latest non-zero ECC error syndrome
93h 109 BYTEs reserved
SeeAlso: #0846,#0879
Format of PCI Configuration Data for Intel 82437MX:
Offset Size Description (Table 0844)
00h 64 BYTEs header (see #0790)
(vendor ID 8086h, device ID 1235h)
40h 16 BYTEs reserved
50h BYTE PCI Control (see #0849)
51h BYTE reserved
52h BYTE cache control (see #0850)
53h 4 BYTEs reserved
57h BYTE DRAM Control (see #0854)
58h BYTE DRAM timing (see #0855)
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #0856)
60h 4 BYTEs DRAM Row Boundary Registers 0-3
each register N indicates cumulative amount of memory in rows
0-N, in 4M units (each row is 64 bits wide)
64h 4 BYTEs reserved
68h BYTE DRAM Row Type (see #0858)
69h 9 BYTEs reserved
72h BYTE System Management RAM control (see #0860)
73h 141 BYTEs reserved
SeeAlso: #0846,#0845
Format of PCI Configuration Data for Intel 82437FX:
Offset Size Description (Table 0845)
00h 64 BYTEs header (see #0790)
(vendor ID 8086h, device ID 0122h) (see #0785)
40h 16 BYTEs reserved
50h BYTE PCI Control (see #0849)
51h BYTE reserved
52h BYTE cache control (see #0850)
53h 4 BYTEs reserved
57h BYTE DRAM Control (see #0854)
58h BYTE DRAM timing (see #0855)
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #0856)
60h 5 BYTEs DRAM Row Boundary Registers 0-4
each register N indicates cumulative amount of memory in rows
0-N, in 4M units (each row is 64 bits wide)
65h 3 BYTEs reserved
68h BYTE DRAM Row Type (see #0858)
69h 9 BYTEs reserved
72h BYTE System Management RAM control (see #0860)
73h 141 BYTEs reserved
SeeAlso: #0844,#0846
Format of PCI Configuration Data for Intel 82437VX:
Offset Size Description (Table 0846)
00h 64 BYTEs header (see #0790)
(vendor ID 8086h, device ID 7030h)
(revision ID 00h = A0 stepping)
40h 15 BYTEs reserved
4Fh BYTE arbitration control (see #0847)
50h BYTE PCI Control (see #0848)
51h BYTE reserved
52h BYTE cache control (see #0850)
53h BYTE cache control extensions (see #0851)
54h WORD SDRAM control (see #0852)
55h BYTE reserved
56h BYTE DRAM extended control (see #0853)
57h BYTE DRAM control (see #0854)
58h BYTE DRAM timing (see #0855)
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #0856)
60h 5 BYTEs DRAM Row Boundary registers 0-4
each register N indicates amount of memory in rows 0-N in 4M
units (each row is 64 bits wide); the fifth row of memory (if
implemented) must contain either 8M or 16M, depending on
system configuration
boundary register 4 (offset 64h) contains the total system
memory, which may not exceed 128M
65h 2 BYTEs reserved
67h BYTE DRAM Row Type (high)
defines memory type in DRAM row 4 in bits 4,0 (see #0857)
68h BYTE DRAM Row Type (low) (see #0857)
69h BYTE PCI TRDY timer (see #0859)
6Ah 6 BYTEs reserved
70h BYTE Multi-Transaction Timer
number of PCLKs guaranteed to the current agent before the
82437 will grant the bus to another PCI agent on request
71h BYTE reserved
72h BYTE System Management RAM control (see #0860)
73h BYTE shared memory buffer control (see #0861)
74h BYTE shared memory buffer start address, in 0.5MB units
end address is top-of-memory at offset 64h or start of an
enabled PCI memory hole when top-of-memory is 16M
76h 2 BYTEs reserved
78h BYTE graphics controller latency timers (see #0862)
79h 135 BYTEs reserved
SeeAlso: #0785,#0816,#0836,#0843,#0844
Bitfields for Intel 82437VX arbitration control:
Bit(s) Description (Table 0847)
7 extended CPU-to-PIIX PHLDA# signalling enabled
6-4 reserved
3 CPU priority enable
=1 CPU gets PCI bus after two PCI slots
=0 CPU gets PCI bus after three PCI slots
2-0 reserved
SeeAlso: #0846,#0848
Bitfields for Intel 82437VX/82439HX PCI Control register:
Bit(s) Description (Table 0848)
7-4 reserved (82437VX)
7 DRAM ECC/Parity Select (82439HX)
=1 ECC
=0 parity
6 ECC TEST enable (82439HX)
5 shutdown to port 92h (82439HX)
=1 send 01h to PORT 0092h on Shutdown special cycle on host bus
4 dual-processor NA# enable (82439HX)
3 PCI Concurrency Enable
=1 CPU can access DRAM/L2 during non-PIIX PCI master cycles
=0 CPU kept off PCI bus during all PCI bus-master cycles
2 SERR# Output Type (82439HX only)
=1 SERR# is actively driven high when negated
=0 SERR# is PCI-compatible open-drain output
1 reserved
0 Global TXC Enable (82439HX only)
=1 enable new 82439HX features
SeeAlso: #0846,#0843,#0850,#0849
Bitfields for Intel 82437FX/82437MX PCI Control register:
Bit(s) Description (Table 0849)
7-5 CPU inactivity timer (in PCI Clocks less 1)
4 reserved
3 enable PCI Peer Concurrency
=1 CPU can access DRAM/L2 during non-PIIX PCI master cycles
=0 CPU kept off PCI bus during all PCI bus-master cycles
2 disable PCI Bursting
1 disable PCI Streaming
0 disable Bus Concurrency
SeeAlso: #0844,#0845,#0848
Bitfields for Intel 82437/82439HX cache control register:
Bit(s) Description (Table 0850)
7-6 secondary cache size
00 none
01 256K
10 512K
11 reserved
5-4 L2 RAM type
00 pipelined burst SRAM/DRAM
01 reserved
10 asynchronous SRAM (82437FX/MX/VX only)
11 two banks of pipelined burst cache
3 NA disable
=1 never assert NA# pin
2 reserved (82437FX/82437MX/82437VX)
2 Extended Cacheability Enable (82439HX)
=1 cache up to 512M
=0 cache only first 64M
1 Secondary Cache Force Miss or Invalidate
=1 force all memory accesses to bypass L2 cache
0 First Level Cache Enable
=1 all memory accesses made non-cacheable by CPU L1 cache
SeeAlso: #0846,#0843,#0848,#0851,#0852,#0844
Bitfields for Intel 82437VX cache control extensions register:
Bit(s) Description (Table 0851)
7-6 reserved
5 DRAM cache detected (read-only)
4-0 DRAM cache refresh timer
number of HCLKs 82437VX remains idle during DRAM cache refresh
SeeAlso: #0846,#0850
Bitfields for Intel 82437VX SDRAM control register:
Bit(s) Description (Table 0852)
15-9 reserved
8-6 Special SDRAM Mode Select
000 normal mode (default)
001 enable NOP command
010 enable All Banks Precharge command
011 enable Mode Register Command
100 enable CBR Cycle
101 reserved
11x reserved
5 reserved
4 CAS# latency
=1 latency is 2 for all SDRAM cycles
=0 latency is 3
3 RAS# precharge and refresh timing
=0 slower
=1 faster
2-0 reserved
SeeAlso: #0846,#0850
Bitfields for Intel 82437VX/82439HX DRAM extended control register:
Bit(s) Description (Table 0853)
7 reserved
6 (82437VX) refresh RAS# assertion length (0=4 clocks, 1=5 clocks)
5 (82437VX) Fast EDO Path Select
4 Speculative Leadoff Disable
3 (82439HX) Turn-Around Insertion Enable
=1 insert one extra clock of turnaround time after asserting MWE#
2-1 Memory Address Drive Strength
82437VX: 82439HX:
00 reserved 00 8mA
01 10mA (default) 01 8mA/12mA (MAA/MWE#)
10 16mA 10 12mA/8mA (MAA/MWE#)
11 reserved 11 12mA
0 (82437VX) DRAM Symmetry Detect Mode
(used to force some memory address lines to fixed value for detecting
DRAM symmetry row-by-row)
0 (82439HX) 64MBit Mode Enable
=1 enable support for 64M SIMMs
SeeAlso: #0846,#0843,#0854
Bitfields for Intel 82437/82439HX DRAM control register:
Bit(s) Description (Table 0854)
7-6 DRAM Hole Enable
00 none
01 512K-640K
10 15M-16M (82437FX/MX/VX only)
11 14M-16M (82437VX only)
5 reserved
4 (82437MX only) refresh type during Suspend
=1 self-refreshing DRAMs in system
=0 CAS-before-RAS refresh
3 EDO Detect Mode enable
(used to detect whether memory is EDO bank-by-bank)
2-0 DRAM refresh rate
FX/VX/HX MX
000 disabled 15.6 us
001 50 MHz 31.2 us
010 60 MHz 62.4 us
011 66 MHz 125 us
100 reserved 250 us
1xx reserved reserved
SeeAlso: #0846,#0843,#0853,#0844
Bitfields for Intel 82437FX/82437MX/82437VX/82439HX DRAM timing register:
Bit(s) Description (Table 0855)
7 (82437FX) reserved
7 (82437MX) MA[11:2] buffer strength
=0 8mA
=1 12mA
7 (82437VX) MA-to-RAS# Delay
=1 one clock
=0 two clocks
7 (82439HX) Turbo Read Leadoff
=1 bypass first register in DRAM data pipeline, saving one clock
(may only be set in a cacheless configuration)
6-5 DRAM Read Burst Timing
00 x444 (EDO and Standard Page Mode)
01 x333 (EDO), x444 (SPM)
10 x222 (EDO), x333 (SPM)
11 x322 (EDO), x333 (SPM) (82437VX only)
11 reserved (other)
4-3 DRAM Write Burst Timing
00 x444
01 x333
10 x222
11 reserved
2 RAS-to-CAS Delay
=1 two clocks
=0 three clocks
1-0 DRAM Leadoff Timing
82437VX Read Leadoff Write Leadoff RAS# Precharge
00 11 7 3
01 10 6 3
10 11 7 4
11 10 6 4
82437FX/MX Read Lead Write Leadoff RAS# Precharge
00 8 6 3
01 7 5 3
10 8 6 4
11 7 5 4
82437VX Read Leadoff Write Leadoff RAS# Precharge
00 7 6 3
01 6 5 3
10 7 6 4
11 6 5 4
SeeAlso: #0846,#0854,#0844,#0845
Bitfields for Intel 82434/82437/82439HX Programmable Attribute Map Register:
Bit(s) Description (Table 0856)
7 reserved
6 cache enable (region 1)
5 write enable (region 1)
4 read enable (region 1)
3 reserved
2 cache enable (region 0)
1 write enable (region 0)
0 read enable (region 0)
Notes: each programmable attribute map register controls two memory
regions at the top of the first megabyte of memory
for the Intel 82441FX, bits 6 and 2 are reserved, as cacheability is
set using the Pentium Pro's MTRR registers (see MSR 000000FEh)
Intel 82434/82437FX/82437MX/82437VX/82439HX/82441FX PAM
registers/regions:
PAM0 low: reserved [*]
PAM0 hi: segment F000-FFFF
PAM1 low: segment C000-C3FF
PAM1 hi: segment C400-C7FF
PAM2 low: segment C800-CBFF
PAM2 hi: segment CC00-CFFF
PAM3 low: segment D000-D3FF
PAM3 hi: segment D400-D7FF
PAM4 low: segment D800-DBFF
PAM4 hi: segment DC00-DFFF
PAM5 low: segment E000-E3FF
PAM5 hi: segment E400-E7FF
PAM6 low: segment E800-EBFF
PAM6 hi: segment EC00-EFFF
[*] on the 82434 (and possibly other Intel chipsets), the low nybble of
PAM0 controls segment 8000-9FFF
SeeAlso: #0815,#0846,#0843,#0879,#0844,#0845
Bitfields for Intel 82437VX DRAM Row Type register:
Bit(s) Description (Table 0857)
7,3 row 3 type
6,2 row 2 type
5,1 row 1 type
4,0 row 0 type
00 SPM DRAM
01 EDO DRAM
10 SDRAM
11 reserved
SeeAlso: #0846,#0856
Bitfields for Intel 82437FX/82437MX DRAM Row Type register:
Bit(s) Description (Table 0858)
7-4 reserved
3-0 DRAM Row N is EDO instead of page-mode DRAM
SeeAlso: #0844,#0845
Bitfields for Intel 82437VX PCI TRDY timer:
Bit(s) Description (Table 0859)
7-3 reserved
2-0 TRDY timeout value
000 2 PCICLKs
001 4 PCICLKs
010 6 PCICLKs
011 8 PCICLKs
1xx reserved
SeeAlso: #0846,#0860
Bitfields for Intel 82437/82439HX System Management RAM control register:
Bit(s) Description (Table 0860)
7 reserved
6 SMM Space Open
=1 make SMM DRAM visible even when not in SMM if bit 4 =0
5 SMM Space Closed
=1 no data references permitted to SMM DRAM even in SMM
4 SMM Space Locked
=1 force bits 4 and 6 to become read-only; and clear bit 6
3 SMRAM Enable
=1 128K DRAM are accessible for use at A000 while in SMM
2-0 SMM Space Base Segment
010 segment A000-BFFF
100 segment C000-CFFF (82437MX only)
other reserved
Note: bits 5 and 6 must never both be set at the same time
SeeAlso: #0846,#0843,#0861,#0844,#0845
Bitfields for Intel 82437VX Shared Memory Buffer control register:
Bit(s) Description (Table 0861)
7-2 reserved
1 enable shared memory buffer
0 redirect shared memory buffer access
=0 treat SMB area as a hole in system DRAM
SeeAlso: #0846,#0860,#0862
Bitfields for Intel 82437VX Graphics Controller Latency Timer:
Bit(s) Description (Table 0862)
7-6 reserved
5-3 GC latency for PCI reads (in 4 HCLK multiples) (default=100)
2-0 GC latency for CPU and PCI writes (in 4 HCLK multiples) (default=011)
SeeAlso: #0846,#0861
Bitfields for Intel 82439HX Error Command register:
Bit(s) Description (Table 0863)
7 SERR# duration
=0 one PCI clock
=1 until error flags are cleared
6-3 reserved
2 force bad parity on multiple-bit uncorrectable error
1 assert SERR# on multiple-bit uncorrectable error
0 assert SERR# on single-bit correctable error
SeeAlso: #0843,#0864
Bitfields for Intel 82439HX Error Status register:
Bit(s) Description (Table 0864)
7-5 DRAM row associated with multi-bit error
4 multi-bit uncorrectable error occurred (write 1 bit to clear)
3-1 DRAM row associated with single-bit correctable error
0 single-bit correctable error occurred (write 1 bit to clear)
SeeAlso: #0843,#0863
Format of PCI Configuration for Intel 82371FB/82371SB Function 0 (ISA Bridge):
Offset Size Description (Table 0865)
00h 64 BYTEs header (see #0790)
(vendor ID 8086h, device ID 122Eh/7000h)
(revision ID 00h = 82371SB step A-1)
(revision ID 01h = 82371SB step B-0)
40h 12 BYTEs reserved
4Ch BYTE ISA I/O Controller Recovery Timer (see #0840)
4Dh BYTE reserved
4Eh BYTE X-Bus Chip Select Enable (see #0842)
4Fh BYTE (82371SB) X-Bus Chip Select Enable High
bit 0: I/O APIC enabled
4Fh BYTE (82371FB) reserved
50h 16 BYTEs reserved
60h 4 BYTEs PCI IRQ Route Control (see #0829)
64h 5 BYTEs reserved
69h BYTE top of memory (see #0868)
6Ah WORD miscellaneous status (see #0869)
6Ch 4 BYTEs reserved
70h BYTE motherboard IRQ Route Control 0 (see #0870)
71h BYTE (82371FB) motherboard IRQ Route Control 1 (see #0870)
72h 4 BYTEs reserved
76h 2 BYTEs motherboard DMA control (see #0871)
78h WORD programmable chip select control (see #0872)
7Ah 6 BYTEs reserved
80h BYTE (82371SB) APIC Base Address Relocation (see #0831)
81h BYTE reserved
82h BYTE (82371SB) Deterministic Latency Control (see #0873)
83h 29 BYTEs reserved
A0h BYTE SMI Control (see #0874)
A1h BYTE reserved
A2h WORD SMI Enable (see #0833)
A4h DWORD System Event Enable (SEE) (see #0834)
A8h BYTE Fast-Off Timer (in minutes, PCICLKs, or milliseconds)
value is count less one; timer must be stopped before
changing its value
A9h BYTE reserved
AAh WORD SMI Request (see #0835)
ACh BYTE Clock Scale STPCLK# Low Timer
STPCLK# stays low for 1+1056*(value+1) PCICLKs
ADh BYTE reserved
AEh BYTE Clock Scale STPCLK# High Timer
STPCLK# stays high for 1+1056*(value+1) PCICLKs
AFh 81 BYTEs reserved
SeeAlso: #0866,#0867,#0817,#0836,#0846,#0843
Format of PCI Configuration for Intel 82371FB/82371SB Function 1 (IDE):
Offset Size Description (Table 0866)
00h 64 BYTEs header (see #0790)
(vender ID 8086h, device ID 1230h/7010h)
20h DWORD Bus Master Interface Base Address
(see PORT xxxxh"Intel 82371SB")
40h WORD IDE timing modes, primary channel (see #0875)
42h WORD IDE timing modes, secondary channel (see #0875)
44h BYTE (82371SB) slave IDE timing register (see #0876)
45h 187 BYTEs reserved
SeeAlso: #0865,#0867,PORT xxxxh"Intel 82371SB"
Format of PCI Configuration for Intel 82371SB Function 2 (USB):
Offset Size Description (Table 0867)
00h 64 BYTEs header (see #0790)
(vendor ID 8086h, device ID 7020h)
20h DWORD I/O space base address
(see PORT xxxxh"Intel 82371SB")
40h 32 BYTEs reserved
60h BYTE Serial Bus Specification release number
00h pre-release 1.0
10h Release 1.0
61h 9 BYTEs reserved
6Ah WORD miscellaneous status (see #0877)
6Ch 84 BYTEs reserved
C0h WORD legacy support (see #0878)
C2h 62 BYTEs reserved
SeeAlso: #0865,#0866,PORT xxxxh"Intel 82371SB"
Bitfields for Intel 82371FB/82371SB top of memory register:
Bit(s) Description (Table 0868)
7-4 top of ISA memory (in megabytes, less 1; i.e. 0001 = 2M)
3 ISA/DMA lower BIOS forwarding enable
2 (82371SB) enable A000/B000 segment forwarding to PCI bus
1 enable forwarding ISA/DMA 512K-640K region to PCI bus
0 reserved
SeeAlso: #0865,#0869
Bitfields for Intel 82371FB/82371SB miscellaneous status register:
Bit(s) Description (Table 0869)
15 (82371SB) enable SERR# on delayed transaction
write 1 to clear this bit
14-8 reserved
7 (82371SB) NB Retry Enable
6 (82371SB) EXTSMI# Mode Enable
allow special SERR# protocol between PCI bridge and 82371
5 reserved
4 (82371SB) enable USB
disable USB's master enable and I/O decode enable prior to
clearing this bit!
3 reserved
2 (82371FB) PCI Header Type Bit enable
=1 report multifunction device in PCI configuration header
1 (82371FB) internal ISA DMA/external DMA Mode status (read-only)
=0 normal DMA operation
0 (82371FB) ISA Clock Divisor status (read-only)
(82371SB) ISA Clock Divisor (read-write)
=1 SYSCLK clock divisor is 3
=0 SYSCLK clock divisor is 4
SeeAlso: #0865,#0868
Bitfields for Intel 82371FB/82371SB motherboard IRQ Route Control:
Bit(s) Description (Table 0870)
7 disable IRQ routing
6 enable MIRQx/IRQx sharing
5 (82371SB) enable IRQ0 output
4 reserved (0)
3-0 ISA IRQ number to which to route the PCI IRQ
Note: IRQs 0-2, 8, and 13 are reserved
SeeAlso: #0865,#0868,#0871
Bitfields for Intel 82371FB/82371SB motherboard DMA control:
Bit(s) Description (Table 0871)
7 type F and DMA buffer enable
6-4 reserved
3 (82371FB) disable motherboadr DMA channel
2-0 DMA channel number
(82371FB) Type F and Motherboard DMA
(82371SB) Type F DMA
SeeAlso: #0865,#0870
Bitfields for Intel 82371FB/83271SB programmable chip select control register:
Bit(s) Description (Table 0872)
15-2 I/O address which will assert PCS# signal
1-0 PCS address mask
00 four bytes
01 eight contiguous bytes
10 disabled
11 sixteen contiguous bytes
SeeAlso: #0865,#0871,#0873
Bitfields for Intel 82371SB Deterministic Latency Control register:
Bit(s) Description (Table 0873)
7-4 reserved
3 enable SERR# on delayed transaction timeout
2 enable USB passive release
1 enable passive release
0 enable delayed transactions
SeeAlso: #0865,#0872
Bitfields for Intel 82371FB/82371SB SMI Control Register:
Bit(s) Description (Table 0874)
7-5 reserved
4-3 Fast-Off Timer freeze/granularity selection
00 one minute granularity (assuming 33 MHz PCICLK)
01 disabled (frozen)
10 one PCICLK
11 one millisecond
2 STPCLK# scaling enable
=1 enable Clock Scale bytes in PCI configuration space
1 STPCLK# signal enable
=1 assert STPCLK# on read from PORT 00B2h
0 SMI# Gate
=1 enable SMI# on system management interrupt
Notes: bit 1 is cleared either with an explicit write of 0 here, or by any
write to PORT 00B2h
bit 0 does not affect the recording of SMI events, so a pending SMI
will cause an immediate SMI# when the bit is set
SeeAlso: #0865,#0832
Bitfields for Intel 82371FB/82371SB IDE timing modes:
Bit(s) Description (Table 0875)
15 IDE decode enable
14 (82371SB) slave IDE timing register enable (see #0876)
13-12 IORDY# sample point
00 five clocks after DIOx# assertion
01 four clocks
10 three clocks
11 two clocks
11-10 reserved
9-8 recovery time between IORDY# sample point and DIOx#
00 four clocks
01 three clocks
10 two clocks
11 one clock
7 DMA timing enable only, drive 1
6 prefetch and posting enable, drive 1
5 IORDY# sample point enable drive select 1
4 fast timing bank drive select 1
3 DMA timing enable only, drive 0
2 prefetch and posting enable, drive 0
1 IORDY# sample point enable drive select 0
0 fast timing bank drive select 0
SeeAlso: #0866
Bitfields for Intel 82371SB slave IDE timing register:
Bit(s) Description (Table 0876)
7-6 secondary drive 1 IORDY# sample point
00 five clocks after DIOx# assertion
01 four clocks
10 three clocks
11 two clocks
5-4 secondary drive 1 recovery time
00 four clocks
01 three clocks
10 two clocks
11 one clock
3-2 primary drive 1 IORDY# sample point
1-0 primary drive 1 recovery time
SeeAlso: #0875
Bitfields for Intel 82371SB miscellaneous status:
Bit(s) Description (Table 0877)
15-1 reserved
0 USB clock selection
=1 48 MHz
=0 24 MHz
SeeAlso: #0867,#0878
Bitfields for Intel 82371SB legacy support register:
Bit(s) Description (Table 0878)
15 A20GATE pass-through sequence ended
write 1 to clear this bit
14 reserved
13 USB PIRQ enabled
12 USR IRQ status (read-only)
11 trap caused by write to PORT 0064h
write 1 to clear this bit
10 trap caused by read from PORT 0064h
write 1 to clear this bit
9 trap caused by write to PORT 0060h
write 1 to clear this bit
8 trap caused by read from PORT 0060h
write 1 to clear this bit
7 enable SMI at end of A20GATE Pass-Through
6 A20GATE pass-through sequence in progress (read-only)
5 enable A20GATE pass-through sequence
(write PORT 64h,D1h; write 60h,xxh; read 64h; write 64h,FFh)
4 enable trap/SMI on USB IRQ
3 enable trap/SMI on PORT 0064h write
2 enable trap/SMI on PORT 0064h read
1 enable trap/SMI on PORT 0060h write
0 enable trap/SMI on PORT 0060h read
SeeAlso: #0867,#0877
Format of PCI Configuration Data for Intel 82441FX:
Offset Size Description (Table 0879)
00h 64 BYTEs header (see #0790)
(vendor ID 8086h, device ID 1237h) (see #0785)
40h 16 BYTEs reserved
50h WORD PMC Configuration (see #0880)
52h BYTE deturbo counter control
when deturbo mode is selected (see PORT 0CF9h), the chipset
places a hold on the memory bus for a fraction of the
time inversely proportional to the value in this register
(i.e. C0h = 1/4, 80h = 1/2, 40h = 3/4, 20h = 7/8, etc.)
53h BYTE DBX buffer control (see #0881)
54h BYTE auxiliary control (see #0882)
55h WORD DRAM Row Type (see #0883)
57h BYTE DRAM Control (see #0884)
58h BYTE DRAM Timing (see #0885)
59h 7 BYTEs Programmable Attribute Map registers 0-6 (see #0856)
60h 8 BYTEs DRAM Row Buondary registers 0-7
each register N indicates cumulative amount of memory in rows
0-N (each 64 bits wide), in 8M units
68h BYTE Fixed DRAM Hole Control
69h 7 BYTEs reserved
70h BYTE Multi-Transaction Timer
number of PCLKs guaranteed to the current agent before the
82441 will grant the bus to another PCI agent on request
71h BYTE CPU Latency Timer (see #0886)
72h BYTE System Management RAM control (see #0860)
73h 29 BYTEs reserved
90h BYTE Error Command (see #0887)
91h BYTE Error Status (see #0888)
92h BYTE reserved
93h BYTE Turbo Reset Control (see #0889)
94h 108 BYTEs reserved
SeeAlso: #0843,#0846
Bitfields for Intel 82441FX PMC Configuration Register:
Bit(s) Description (Table 0880)
15 WSC Protocol Enable
14 Row Select/Extra Copy select (read-only)
=1 pins on PMC configured as two additional row selects (6/7)
=0 extra copy of two lowest memory address bits enabled
13-10 reserved
9-8 host frequence select
00 reserved
01 60 MHz
10 66 MHz
11 reserved
7 reserved
6 ECC/Parity TEST enable
5-4 DRAM Data Integrity Mode
00 no parity/ECC
01 parity generated and checked
10 ECC generated and checked, correction disabled
10 ECC generated and checked, correction enabled
3 reserved
2 In-Order Queue size (0=one, 1=four)
1-0 reserved
SeeAlso: #0879,#0881
Bitfields for Intel 82441FX DBX buffer control register:
Bit(s) Description (Table 0881)
7 enable delayed transactions
6 enable CPU-to-PCI IDE posting
5 enable USWC Write Post during I/O Bridge access
4 disable PCI Delayed Transaction timer
3 enable CPU-to-PCI Write Post
2 enable PCI-to-DRAM pipeline
1 enable PCI Burst Write Combining
0 enable Read-Around-Write
SeeAlso: #0879,#0880
Bitfields for Intel 82441FX auxiliary control register:
Bit(s) Description (Table 0882)
7 enable RAS precharge
6-2 reserved
1 Lower Memory Address Buffer Set A
=0 8mA
=1 12mA
0 reserved
SeeAlso: #0879
Bitfields for Intel 82441FX DRAM Row Type register:
Bit(s) Description (Table 0883)
15-14 row 7 DRAM type
13-12 row 6 DRAM type
11-10 row 5 DRAM type
9-8 row 4 DRAM type
7-6 row 3 DRAM type
5-4 row 2 DRAM type
3-2 row 1 DRAM type
1-0 row 0 DRAM type
00 fast page-mode DRAM
01 EDO DRAM
10 BEDO DRAM
11 empty row
SeeAlso: #0879,#0884
Bitfields for Intel 82441FX DRAM Control register:
Bit(s) Description (Table 0884)
7 reserved
6 enable DRAM Refresh Queue
5 enable DRAM EDO Auto-Detect Mode
4 DRAM Refresh Type
=0 CAS before RAS
=1 RAS only
3 reserved
2-0 DRAM refresh rate
000 disabled
001 normal (as set by PMCCFG register)
01x reserved
1xx reserved
111 fast refresh (every 32 host clocks)
SeeAlso: #0879,#0883,#0885
Bitfields for Intel 82441FX DRAM Timing register:
Bit(s) Description (Table 0885)
7 reserved
6 enable WCBR Mode
5-4 DRAM Read Burst Timing
BEDO EDO FPM
00 x333 x444 x444
01 x222 x333 x444
10 x222 x222 x333
11 res. res. res.
3-2 DRAM Write Burst Timing
(B)EDO FPM
00 x444 x444
01 x333 x444
10 x333 x333
11 x222 x333
1 RAS-to-CAS delay
=1 one clock
=0 zero clocks
0 insert one MA Wait State
SeeAlso: #0879,#0884
Bitfields for Intel 82441FX CPU Latency Timer register:
Bit(s) Description (Table 0886)
7-5 reserved
4-0 snoop stall count value
SeeAlso: #0879
Bitfields for Intel 82441FX Error Command register:
Bit(s) Description (Table 0887)
7-5 reserved
4 enable SERR# on receiving Target Abort
3 enable SERR# on PCI Parity Error (PERR#)
2 reserved
1 enable SERR# on receiving multiple-bit ECC/Parity error
0 enable SERR# on receiving single-bit ECC error
SeeAlso: #0879,#0888
Bitfields for Intel 82441FX Error Status register:
Bit(s) Description (Table 0888)
7-5 DRAM row causing first multi-bit error (read-only)
4 multiple-bit uncorrectable error detected
write 1 to this bit to clear it
3-1 DRAM row causing first single-bit error (read-only)
0 single-bit correctable ECC error detected
write 1 to this bit to clear it
SeeAlso: #0879,#0887
Bitfields for Intel 82441FX Turbo Reset Control register:
Bit(s) Description (Table 0889)
7-4 reserved
3 enable BIST on hard reset
2 reset CPU
1 reset mode
0 soft reset
1 hard reset
0 deturbo mode
SeeAlso: #0879,PORT 0CF9h
Format of PC Technology RZ-1000 EIDE controller:
Offset Size Description (Table 0890)
00h 64 BYTEs header (see #0790)
(vendor ID 1042h, device ID 1000h)
10h DWORD base address for controller I/O registers
(set to 01F1h for primary controller, 0171h for secondary)
14h DWORD base address for controller digital I/O port
(set to 03F5h for primary, 0375h for secondary)
40h DWORD ???
bits 7-1: ???
bit 16: ???
44h DWORD ???
48h 8 BYTEs ???
50h 176 BYTEs unused???
Format of OpenHCI Host Controller memory-mapped registers:
Offset Size Description (Table 0891)
00h DWORD "HcRevision" OpenHCI revision (see #0892)
04h DWORD "HcControl" HC operating modes (see #0893)
08h DWORD "HcCommandStatus" command/status (see #0894)
0Ch DWORD "HcInterruptStatus" interrupt status (see #0895)
10h DWORD "HcInterruptEnable" enable interrupts (see #0896)
14h DWORD "HcInterruptDisable" disable interrupts (see #0896)
18h DWORD "HcHCCA" HC Communications Area (see #0897)
1Ch DWORD "HcPeriodCurrentED" Endpoint Descriptor addr (see #0898)
20h DWORD "HcControlHeadED" Control Endpoint Descriptor (see #0899)
24h DWORD "HcControlCurrentED" Control Endpoint Descriptor (see #0899)
28h DWORD "HcBulkHeadED" Bulk Endpoint Descriptor (see #0900)
2Ch DWORD "HcBulkCurrentED" Bulk Endpoint Descriptor (see #0900)
30h DWORD "HcDoneHead" last completed Xfer Descr. (see #0901)
34h DWORD "HcFmInterval" Frame bit-time interval (see #0902)
38h DWORD "HcFmRemaining" bit time remaining in Frame (see #0903)
3Ch DWORD "HcFmNumber" Frame Number (bits 15-0)
40h DWORD "HcPeriodicStart" earliest time to start periodic list
(bits 13-0)
44h DWORD "HcLSThreshold" threshold for Low Speed transaction
(bits 11-0)
48h DWORD "HcRhDescriptorA" Root Hub Descriptor A (see #0904)
4Ch DWORD "HcRhDescriptorB" Root Hub Descriptor B (see #0905)
50h DWORD "HcRhStatus" Root Hub status (see #0906)
54h N DWORDs "HCRhPortStatus[1-N]" Root Hub port status N (see #0907)
Note: OpenHCI reserves a full 4K page of the systems address space for its
memory-mapped registers
SeeAlso: #0790,#0794,#F059
Bitfields for OpenHCI "HcRevision" register:
Bit(s) Description (Table 0892)
31-8 reserved
7-0 BCD OpenHCI specification number (10h = 1.0, 11h = 1.1)
Note: this register is read-only
SeeAlso: #0891,#0893
Bitfields for OpenHCI "HcControl" register:
Bit(s) Description (Table 0893)
31-11 reserved
10 RWE enable Remote Wakeup feature
9 RWC controller supports Remote Wakeup signalling
8 IR Interrupt Routing
0 normal host bus interrupt
1 System Managment Interrupt
7-6 HCFS USB Host Controller Functional State
00 USBReset
01 USBResume
10 USBOperational
11 USBSuspend
5 BLE enable Bulk List processing in next frame
4 CLE enable Control List processing in next frame
3 IE enable Isochronous ED processing
2 PLE enable processing of Periodic List in next frame
1-0 CBSR Control Bulk Service Ratio
00 1:1 Control EDs:Bulk EDs served
01 2:1
10 3:1
11 4:1
SeeAlso: #0891,#0892,#0894
Bitfields for OpenHCI "HcCommandStatus" register:
Bit(s) Description (Table 0894)
31-18 reserved
17-16 SOC scheduling-overrun count
15-4 reserved
3 OCR ownership change request is pending
2 BLF bulk list contains TDs
1 CLF control list contains TDs
0 HCR host controller software reset
Note: writing a 1 bit sets the corresponding bit, while a 0 bit leaves the
corresponding bit unchanged
SeeAlso: #0891,#0892,#0895
Bitfields for OpenHCI "HcInterruptStatus" register:
Bit(s) Description (Table 0895)
31 reserved (0)
30 OC ownership change
29-7 reserved
6 RHSC Root Hub status changed
5 FNO frame number overflowed
4 UE unrecoverable error
3 RD resume detected
2 SF start of frame
1 WDH writeback done
0 SO scheduling overrun
Note: writing a 1 bit clears the corresponding bit of the register
SeeAlso: #0891,#0892,#0894,#0896
Bitfields for OpenHCI "HcInterruptEnable" and "HcInterruptDisable" registers:
Bit(s) Description (Table 0896)
31 MIE master interrupt enable
30 OC ownership change
29-7 reserved
6 RHSC Root Hub status change
5 FNO frame number overflow
4 UE unrecoverable error
3 RD Resume Detect
2 SF start of frame
1 WDH HcDoneHead writeback
0 SO scheduling overrun
Note: writing a 1 bit to HcInterruptEnable enables the corresponding
interrupt, while writing a 1 bit to HcInterruptDisable disables it;
zero bits are ignored. On reading, both registers return the
same value, which reflects the currently enabled interrupts
SeeAlso: #0891
Bitfields for OpenHCI "HcHCCA" register:
Bit(s) Description (Table 0897)
31-8 physical address of Host Controller Communications Area (bits 31-8)
7-0 reserved (0)
Note: the required alignment for the HCCA may be determined by writing
FFFFFFFFh to this register and determining the number of low-order
zero bits
SeeAlso: #0891,#0898,#0899
Bitfields for OpenHCI "HcPeriodCurrentED" register:
Bit(s) Description (Table 0898)
31-4 physical address of current Isochronous/Interrupt Endpoint Descriptor
(bits 31-4)
3-0 reserved (0)
SeeAlso: #0891,#0897,#0899
Bitfields for OpenHCI "HcControlHeadED"/"HcControlCurrentED" register:
Bit(s) Description (Table 0899)
31-4 physical address of first/current Endpoint Descriptor (bits 31-4)
3-0 reserved (0)
Note: HcControlCurrentED is set to 0000000h to indicate the end of the
Control list
SeeAlso: #0891,#0897,#0898
Bitfields for OpenHCI "HcBulkHeadED"/"HcBulkCurrentED" register:
Bit(s) Description (Table 0900)
31-4 physical address of first/current Endpoint Descriptor in the Bulk
list (bits 31-4)
3-0 reserved (0)
Note: HcBulkCurrentED is set to 0000000h to indicate the end of the Bulk
list
SeeAlso: #0891,#0897,#0899
Bitfields for OpenHCI "HcDoneHead" register:
Bit(s) Description (Table 0901)
31-4 physical address of most-recently completed Transfer Descriptor added
to the Done queue (bits 31-4)
3-0 reserved (0)
SeeAlso: #0891,#0898,#0900
Bitfields for OpenHCI "HcFmInterval" register:
Bit(s) Description (Table 0902)
31 "FIT" toggled each time a new value is loaded into bits 13-0
30-16 "FSMPS" largest data packet in bits
15-14 reserved
13-0 "FI" Frame Interval (between to consecutive SOFs)
SeeAlso: #0891,#0903
Bitfields for OpenHCI "HcFmRemaining" register:
Bit(s) Description (Table 0903)
31 "FRT" loaded from bit 31 of HcFmInterval whenever FR reaches 0
30-14 reserved
13-0 "FR" FrameRemaining -- bits times left in current frame
SeeAlso: #0891,#0902
Bitfields for OpenHCI "HcRhDescriptorA" register:
Bit(s) Description (Table 0904)
31-24 "POTPGT" power-on to power-good time in 2ms units
23-13 reserved
12 "NOCP" no over-current protection supported
11 "OCPM" over-current status reported per-port
10 "DT" device type - is root hub compound device?
9 "NPS" NoPowerSwitching -- ports are always powered up
8 "PSM" power-switching mode -- if set, each port powered individually
7-0 "NDP" number of downstream ports
SeeAlso: #0891,#0905,#0906
Bitfields for OpenHCI "HcRhDescriptorB" register:
Bit(s) Description (Table 0905)
31-16 "PPCM" PortPowerControlMask -- bitmask of ports NOT affected by global
power control (bit 16 [port #0] is reserved)
15-0 "DR" DeviceRemovable -- bitmap of removable devices
SeeAlso: #0891,#0904,#0906
Bitfields for OpenHCI "HcRhStatus" register:
Bit(s) Description (Table 0906)
31 "CRWE" Clear Remote Wakeup Enable
write 1 to disable remote wakeup (writes of 0 ignored)
30-18 reserved
17 "OCIC" OverCurrent Indicator Change
write 1 to clear
16 R "LPSC" Local Power Status Change
W Set Global Power mode (write 1; writes of 0 ignored)
15 "DRWE" Device Remote Wakeup Enable
write 1 to enable (writes of 0 ignored)
read to get current status
14-2 reserved
1 "OCI" OverCurrent Indicator
0 R "LPS" LocalPowerStatus (always 0 for Root Hub)
W write 1 to turn off power to all ports/ports with clear
PortPowerControlMask bits
SeeAlso: #0891,#0904,#0905,#0907
Bitfields for OpenHCI "HcRhPortStatusN" register:
Bit(s) Description (Table 0907)
31-21 reserved
20 "PRSC" Port Reset Status Change (write '1' to clear)
19 "OCIC" Port OverCurrent Indiactor Change (write '1' to clear)
18 "PSSC" Port Suspend Status Change (write '1' to clear)
17 "PESC" Port Enable Status Change (write '1' to clear)
16 "CSC" Connect Status Change (write '1' to clear)
15-10 reserved
9 R "LSDA" Low Speed Device Attached
W clear port power by writing '1'
8 R "PPS" Port Power Status
W set port power by writing '1'
7-5 reserved
4 R "PRS" Port Reset Status
W set port reset by writing '1'
3 R "POCI" Port OverCurrent Indicator
W clear suspend status by writing '1'
2 R "PSS" Port Suspend Status
W set port suspend by writing '1'
1 R "PES" Port Enable Status
W set port enable by writing '1'
0 R "CCS" current connect status
W clear port enable by writing '1'
SeeAlso: #0891,#0904,#0905,#0906
--------X-1AB10B-----------------------------
INT 1A - Intel PCI BIOS v2.0c+ - WRITE CONFIGURATION BYTE
AX = B10Bh
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (0000h-00FFh)
CL = byte to write
Return: CF clear if successful
CF set on error
AH = status (00h,87h) (see #0646)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
the meanings of BL and BH on entry were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B108h,AX=B10Ch,AX=B10Dh,AX=B18Bh,INT 2F/AX=1684h/BX=304Ch
--------X-1AB10C-----------------------------
INT 1A - Intel PCI BIOS v2.0c+ - WRITE CONFIGURATION WORD
AX = B10Ch
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (multiple of 2 less than 0100h)
CX = word to write
Return: CF clear if successful
CF set on error
AH = status (00h,87h) (see #0646)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
the meanings of BL and BH on entry were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B109h,AX=B10Bh,AX=B10Dh,AX=B18Ch,INT 2F/AX=1684h/BX=304Ch
--------X-1AB10D-----------------------------
INT 1A - Intel PCI BIOS v2.0c+ - WRITE CONFIGURATION DWORD
AX = B10Dh
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (multiple of 4 less than 0100h)
ECX = dword to write
Return: CF clear if successful
CF set on error
AH = status (00h,87h) (see #0646)
EAX, EBX, ECX, and EDX may be modified
all other flags (except IF) may be modified
Notes: this function may require up to 1024 byte of stack; it will not enable
interrupts if they were disabled before making the call
the meanings of BL and BH on entry were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B10Ah,AX=B10Bh,AX=B10Ch,AX=B18Dh,INT 2F/AX=1684h/BX=304Ch
--------X-1AB10EBX0000-----------------------
INT 1A - Intel PCI BIOS v2.1+ - GET IRQ ROUTING INFORMATION
AX = B10Eh
BX = 0000h
DS = segment/selector for PCI BIOS data
(real mode: F000h; 16-bit PM: physical 000F0000h; 32-bit PM: as
specified by BIOS32 services directory)
ES:(E)DI -> IRQ routing table header (see #0924 at AX=B406h)
Return: CF clear if successful
AH = 00h
BX = bit map of IRQ channels permanently dedicated to PCI
WORD ES:[DI] = size of returned data
CF set on error
AH = error code (59h) (see #0908)
WORD ES:[DI] = required size of buffer
SeeAlso: AX=B10Fh,AX=B406h,INT 2F/AX=1684h/BX=304Ch
--------X-1AB10F-----------------------------
INT 1A - Intel PCI BIOS v2.1+ - SET PCI IRQ
AX = B10Fh
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
CH = number of IRQ to connect
CL = number of interrupt pin (0Ah=INTA# to 0Dh=INTD#) to reprogram
DS = segment/selector for PCI BIOS data
(real mode: F000h; 16-bit PM: physical 000F0000h; 32-bit PM: as
specified by BIOS32 services directory)
Return: CF clear if successful
AH = 00h
CF set on error
AH = error code (59h) (see #0908)
Note: assumes that the calling application has determined the IRQ routing
topology (see AX=B10Eh), has ensured that the selected IRQ will not
cause a conflict, and will update the interrupt line configuration
register on all devices which currently use the IRQ line
SeeAlso: AX=B10Eh
--------X-1AB181-----------------------------
INT 1A - Intel PCI BIOS v2.0c+ - INSTALLATION CHECK (32-bit)
AX = B181h
Return: as for AX=B101h
SeeAlso: AX=B101h
--------X-1AB182-----------------------------
INT 1A - Intel PCI BIOS v2.0c+ - FIND PCI DEVICE (32-bit)
AX = B182h
CX = device ID (see #0652,#0658,#0659,#0785,#0787)
DX = vendor ID (see #0649 at AX=B102h)
SI = device index (0-n)
Return: as for AX=B102h
SeeAlso: AX=B102h
--------X-1AB183-----------------------------
INT 1A - Intel PCI BIOS v2.0c+ - FIND PCI CLASS CODE (32-bit)
AX = B183h
ECX = class code (bits 23-0)
SI = device index (0-n)
Return: as for AX=B103h
SeeAlso: AX=B103h
--------X-1AB186-----------------------------
INT 1A - Intel PCI BIOS v2.0c+ - PCI BUS-SPECIFIC OPERATIONS (32-bit)
AX = B186h
BH = bus number
EDX = Special Cycle data
Return: as for AX=B106h
Note: the meanings of BL and BH on return were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B106h
--------X-1AB188-----------------------------
INT 1A - Intel PCI BIOS v2.0c+ - READ CONFIGURATION BYTE (32-bit)
AX = B188h
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (0000h-00FFh)
Return: as for AX=B108h
Note: the meanings of BL and BH on return were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B108h,AX=B189h,AX=B18Ah
--------X-1AB189-----------------------------
INT 1A - Intel PCI BIOS v2.0c+ - READ CONFIGURATION WORD (32-bit)
AX = B189h
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (0000h-00FFh)
Return: as for AX=B109h
Note: the meanings of BL and BH on return were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B109h,AX=B188h,AX=B18Ah
--------X-1AB18A-----------------------------
INT 1A - Intel PCI BIOS v2.0c+ - READ CONFIGURATION DWORD (32-bit)
AX = B18Ah
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (0000h-00FFh)
Return: as for AX=B10Ah
Note: the meanings of BL and BH on return were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B10Ah,AX=B188h,AX=B189h
--------X-1AB18B-----------------------------
INT 1A - Intel PCI BIOS v2.0c+ - WRITE CONFIGURATION BYTE (32-bit)
AX = B18Bh
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (0000h-00FFh)
CL = byte to write
Return: as for AX=B10Bh
Note: the meanings of BL and BH on return were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B10Bh,AX=B18Ch,AX=B18Dh
--------X-1AB18C-----------------------------
INT 1A - Intel PCI BIOS v2.0c+ - WRITE CONFIGURATION WORD (32-bit)
AX = B18Ch
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (multiple of 2 less than 0100h)
CX = word to write
Return: as for AX=B10Ch
Note: the meanings of BL and BH on return were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B10Ch,AX=B18Bh,AX=B18Dh
--------X-1AB18D-----------------------------
INT 1A - Intel PCI BIOS v2.0c+ - WRITE CONFIGURATION DWORD (32-bit)
AX = B18Dh
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
DI = register number (multiple of 4 less than 0100h)
ECX = dword to write
Return: as for AX=B10Dh
Note: the meanings of BL and BH on return were exchanged between the initial
drafts of the specification and final implementation
SeeAlso: AX=B10Dh,AX=B18Bh,AX=B18Ch
--------X-1AB18EBX0000-----------------------
INT 1A - Intel PCI BIOS v2.1+ - GET IRQ ROUTING INFORMATION (32-bit)
AX = B18Eh
BX = 0000h
DS = segment/selector for PCI BIOS data
(real mode: F000h; 16-bit PM: physical 000F0000h; 32-bit PM: as
specified by BIOS32 services directory)
ES:(E)DI -> IRQ routing table header (see #0924 at AX=B406h)
Return: CF clear if successful
AH = 00h
BX = bit map of IRQ channels permanently dedicated to PCI
WORD ES:[DI] = size of returned data
CF set on error
AH = error code (59h) (see #0908)
WORD ES:[DI] = required size of buffer
SeeAlso: AX=B10Fh,AX=B406h,INT 2F/AX=1684h/BX=304Ch
--------X-1AB18F-----------------------------
INT 1A - Intel PCI BIOS v2.1+ - SET PCI IRQ (32-bit)
AX = B18Fh
BH = bus number
BL = device/function number (bits 7-3 device, bits 2-0 function)
CH = number of IRQ to connect
CL = number of interrupt pin (0Ah=INTA# to 0Dh=INTD#) to reprogram
DS = segment/selector for PCI BIOS data
(real mode: F000h; 16-bit PM: physical 000F0000h; 32-bit PM: as
specified by BIOS32 services directory)
Return: CF clear if successful
AH = 00h
CF set on error
AH = error code (59h) (see #0908)
Note: assumes that the calling application has determined the IRQ routing
topology (see AX=B10Eh), has ensured that the selected IRQ will not
cause a conflict, and will update the interrupt line configuration
register on all devices which currently use the IRQ line
SeeAlso: AX=B10Eh
--------!---Section--------------------------